Connexion / chaîne d’outils / diagnostic

Commencez par établir la connexion distante,
puis identifiez le problème étape par étape.

Ce guide accompagne la connexion à un nœud physique dédié : vérifiez d’abord l’adresse du nœud et les identifiants système, puis configurez SSH, VNC, Xcode et le runner CI. En cas d’anomalie, procédez dans l’ordre réseau, authentification, système, chaîne d’outils et stockage afin d’éviter les tentatives inutiles.

Méthodes de connexion SSH / VNC
Interface système GUI / CLI
Type de ressource Machine physique dédiée
Disponibilité du nœud 365 jours

01 / Première connexion

Vérifiez ces cinq catégories d’informations avant la première connexion

Ne commencez pas par supposer un problème réseau ou réinitialiser le système. Les informations du nœud dans la console sont la seule référence de vérification. Lors de la copie de l’adresse, n’ajoutez ni préfixe de protocole, ni espace, ni caractère autre que le port.

  1. 01

    Adresse et région du nœud

    Vérifiez l’identifiant du nœud, la région, l’adresse de l’hôte et le port de connexion de l’instance actuelle. La région doit correspondre à la commande. Si votre équipe utilise une liste blanche réseau, notez également l’adresse IP publique actuelle du client.

    À vérifier : NODE ID / HOST / REGION / PORT

  2. 02

    Compte système

    Le nom du compte est sensible à la casse. Le nom utilisé dans la commande SSH, celui de la fenêtre de connexion VNC et celui affiché dans la console doivent être identiques. N’utilisez pas une adresse e-mail à la place du nom d’utilisateur système.

    Format : username@host

  3. 03

    Identifiants temporaires

    Avant la première utilisation, vérifiez que les identifiants correspondent toujours à la version actuelle indiquée dans la console. Après la connexion, remplacez immédiatement le mot de passe temporaire. Si vous l’avez déjà changé, utilisez la nouvelle valeur : l’ancienne ne fonctionnera plus.

    Action : se connecter → remplacer → enregistrer en lieu sûr

  4. 04

    Client SSH

    Sur macOS et dans les environnements Linux courants, vous pouvez utiliser directement le terminal. Vérifiez d’abord la connectivité du port, puis lancez SSH. Lorsqu’une empreinte d’hôte apparaît pour la première fois, vérifiez l’adresse du nœud avant de confirmer.

    Conseil : délai de connexion 10 s / maintien de connexion 30 s

  5. 05

    Partage d’écran ou client VNC

    Préparez un client compatible avec VNC et vérifiez que la cible inclut le bon port. Pour la première connexion, commencez avec une résolution réduite et une qualité adaptative, puis augmentez les paramètres d’affichage lorsque la saisie est stable.

    Point de départ : 1920×1080 / 24 bits / adaptatif

Ordre de vérification recommandé :Vérifiez d’abord l’adresse, le port, le compte et les identifiants avec SSH, puis connectez-vous à l’interface graphique. Si SSH fonctionne mais que VNC échoue, le diagnostic peut être limité au service graphique, au port VNC et aux paramètres du client.

02 / Mini-glossaire

Harmonisez d’abord les termes, puis vérifiez la configuration

Les termes suivants apparaissent dans les commandes, la console, la documentation de connexion et les rapports d’incident. Chaque terme correspond à une limite de ressource ou à une action technique précise.

Nœud physique
Matériel Mac mini qui exécute réellement macOS. L’adresse, la région et l’identifiant du nœud identifient conjointement la ressource fournie.
Dédié
Un seul locataire utilise la puce, la mémoire et le stockage de la machine entière, sans partager l’instance du système d’exploitation avec d’autres locataires.
Mac dans le cloud
Mac déployé sur un nœud distant et accessible par le réseau. MiniDeploy fournit une machine physique dédiée, et non une machine virtuelle.
VNC
Protocole qui transmet l’interface graphique distante ainsi que les actions du clavier et du pointeur. L’expérience dépend principalement de la latence aller-retour, de la résolution, de la profondeur de couleur et du volume de changements à l’écran.
SSH
Méthode de connexion chiffrée destinée à la ligne de commande distante, à la synchronisation de fichiers et à l’automatisation. Elle convient aux contrôles d’environnement, aux builds et à la collecte des journaux.
self-hosted runner
Exécuteur géré par l’équipe qui reçoit les tâches CI. Il permet de fixer la version de Xcode, les chemins de cache, le répertoire de travail et les dépendances de build.
Chaîne d’outils
Ensemble de Xcode, des outils en ligne de commande, du gestionnaire de paquets, de Ruby, de fastlane, des scripts et des variables d’environnement nécessaires au build.
Latence du nœud
Temps aller-retour des données entre le client et le nœud, généralement exprimé en millisecondes. Plus la valeur est faible, plus la réponse du bureau distant est généralement rapide.

03 / Exemple de terminal

Validez la connexion, le build et l’envoi grâce à trois sorties

La sortie du terminal doit répondre à trois questions : êtes-vous sur le bon nœud, Xcode utilise-t-il la version attendue et l’artefact de build a-t-il été reçu par le pipeline ?

Le nom d’hôte de l’exemple indique uniquement la structure de la commande. L’adresse réelle, le port, le compte et l’identifiant du nœud sont ceux enregistrés dans la console. Lors de la collecte des journaux, conservez les horodatages et les commandes en échec, mais supprimez les mots de passe, clés privées et éléments de signature.

04 / Parcours de migration

Le parcours de migration en trois étapes d’un Mac local vers un Mac dans le cloud

Ne migrez pas tous les répertoires en une seule fois. Transférez d’abord les données du projet, reproduisez ensuite la chaîne d’outils, puis connectez la CI. Définissez une condition de validation pour chaque étape.

  1. ÉTAPE 01

    Synchroniser le projet et la liste de configuration

    Synchronisez en priorité le dépôt de code, les scripts de build et les ressources nécessaires. Transférez les fichiers volumineux séparément et calculez leur valeur de contrôle avant et après le transfert. Ne copiez pas directement l’intégralité des caches de l’ancienne machine.

    • Noter la branche du dépôt et le hash du commit
    • Exporter la liste des versions des dépendances
    • Vérifier le nombre et la taille des fichiers clés
    Condition de validation Le code peut être extrait et la liste des dépendances est lisible
  2. ÉTAPE 02

    Reproduire Xcode et la chaîne d’outils de signature

    Identifiez la version majeure de Xcode, le chemin des outils en ligne de commande ainsi que les versions de Ruby et fastlane. Importez les éléments de signature via un processus contrôlé, puis vérifiez les permissions et la période de validité des fichiers.

    • Vérifier xcode-select -p
    • Verrouiller les versions du gestionnaire de paquets et des scripts
    • Exécuter un build Release local
    Condition de validation Le même commit peut être archivé de manière fiable
  3. ÉTAPE 03

    Intégrer le self-hosted runner

    Créez un répertoire de travail et un compte de service dédiés au runner. Limitez la portée des correspondances de labels, définissez le niveau de concurrence et séparez les chemins du cache, des journaux et des artefacts du répertoire source.

    • Exécuter une tâche de test minimale après l’enregistrement
    • Vérifier les règles d’utilisation et de nettoyage du cache
    • Vérifier que les journaux d’échec peuvent être renvoyés
    Condition de validation Le cycle commit déclenché, build et retour des résultats est complet

05 / Bureau distant

Commencez avec une faible charge pour régler le bureau du Mac distant

L’expérience du bureau distant ne dépend pas uniquement de la bande passante. La latence du nœud, la résolution, la profondeur de couleur, la fréquence d’images, la mise à l’échelle du client et les transferts de fichiers en arrière-plan influencent tous la réactivité de la saisie.

Partage d’écran macOS

Adapté pour accéder à l’interface graphique depuis un client Mac. Utilisez l’adresse d’hôte et le port indiqués dans la console ; le compte de connexion doit correspondre exactement au compte système.

Résolution initiale
1920×1080
Profondeur de couleur
24 bits
Bande passante recommandée
≥ 15 Mbps
Conseil d’interaction
Privilégier la qualité adaptative

Si l’affichage présente des retards, arrêtez d’abord les synchronisations en arrière-plan, puis réduisez la résolution distante. Ne modifiez pas simultanément la résolution, la profondeur de couleur et le niveau de compression : il serait difficile d’identifier le facteur réellement en cause.

Client VNC universel

Adapté à l’accès multiplateforme. Activez la compression adaptative et désactivez les animations superflues. Si le client permet de régler séparément la qualité et la profondeur de couleur, laissez d’abord la qualité en mode automatique et réduisez uniquement la profondeur de couleur.

Résolution initiale
1600×900
Profondeur de couleur sur réseau faible
16 bits
Bande passante recommandée
≥ 10 Mbps
Maintien de connexion
30–60 s

Si la saisie présente un retard notable malgré une image nette, vérifiez en priorité la latence aller-retour entre le client et le nœud. Une haute résolution ne corrige pas les instabilités réseau ; elle augmente seulement la charge d’encodage et de transmission.

Usage Résolution de départ Profondeur de couleur Bande passante recommandée Paramètre à ajuster en priorité
Terminal et édition légère 1600×900 16 bits ≥ 8 Mbps Réduire les mouvements à l’écran
Codage et débogage Xcode 1920×1080 24 bits ≥ 15 Mbps Maintenir une liaison à faible latence
Développement multi-fenêtres 2560×1440 24 bits ≥ 25 Mbps Vérifier d’abord la stabilité
Affichage très dynamique 1920×1080 24 bits ≥ 30 Mbps Réduire la fréquence d’images ou la qualité

Les valeurs de bande passante sont un point de départ de configuration, pas une conclusion sur la latence. Pour le développement et l’administration à distance, privilégiez un nœud proche du client et validez-le dans les conditions réseau réelles.

06 / CI/CD

Rendez le runner reproductible, pas simplement fonctionnel une fois

Une intégration CI réussie ne se résume pas à obtenir un résultat vert. Le même commit doit pouvoir être reconstruit après nettoyage du répertoire de travail, avec suffisamment de journaux conservés en cas d’échec.

Enregistrement

Enregistrement du runner

  • Utiliser un compte de service dédié
  • Distinguer au minimum l’architecture et la version de Xcode dans les labels
  • Définir la concurrence par défaut à 1, puis l’ajuster après vérification de la charge
  • N’utiliser le jeton d’enregistrement que pendant la configuration
Workspace

Isoler les répertoires de travail

  • Utiliser un répertoire d’extraction indépendant pour chaque tâche
  • Stocker séparément le code source, le cache, les journaux et les artefacts
  • Nettoyer les fichiers temporaires à la fin de la tâche
  • Interdire le partage de fichiers de configuration accessibles en écriture entre projets
Cache

Stratégie de cache

  • Inclure le résumé des fichiers de verrouillage des dépendances dans la clé du cache
  • Définir une limite de capacité et des conditions d’expiration pour le cache
  • Autoriser une reconstruction complète en cas d’anomalie de cache
  • Ne pas mettre en cache les éléments de signature ni les identifiants à courte durée de vie
Signature

Certificats de build

  • Importer les éléments nécessaires projet par projet
  • Limiter les permissions des fichiers et les comptes autorisés
  • Noter la période de validité et effectuer des contrôles anticipés
  • Ne jamais afficher de contenu sensible dans les journaux de tâche
Journaux

Conservation des journaux

  • Conserver le numéro de tâche, le hash du commit et les horodatages
  • Enregistrer à la fois la sortie standard et la sortie d’erreur
  • Téléverser un résumé de diagnostic à l’étape de l’échec
  • Anonymiser les données avant de contacter l’assistance
Validation

Tâche minimale de validation

  • Afficher les versions du système et de Xcode
  • Récupérer les dépendances et exécuter les tests unitaires
  • Générer un artefact de build identifiable
  • Nettoyer le répertoire, puis exécuter à nouveau
Limites de ressources :La configuration M4 Core comprend un Mac Mini M4, 16 Go de RAM et un SSD de 256 Go. Les tâches parallèles consomment simultanément la mémoire, les entrées-sorties du stockage et le réseau. Avant de connecter plusieurs pipelines, mesurez le pic d’une tâche unique au lieu d’augmenter directement la concurrence.

07 / Arbre de diagnostic

Accédez à l’arbre de diagnostic selon le symptôme

Ne modifiez qu’une variable à la fois et notez l’heure, la commande, la valeur retournée et le réseau du client. Cliquer plusieurs fois sur le bouton de connexion apporte généralement peu d’informations supplémentaires.

Impossible de se connecter : déterminez d’abord si l’adresse ou le port est inaccessible
  1. Vérifiez dans la console que l’état du nœud, l’adresse, la région et le port sont corrects.
  2. Vérifiez si le réseau local limite le port cible. Un changement de réseau sert uniquement de comparaison, pas de solution durable.
  3. Utilisez une sonde de port pour déterminer s’il s’agit d’un délai d’attente, d’un refus ou d’une connexion établie, et notez l’heure exacte.
  4. Si SSH et VNC sont tous deux inaccessibles, transmettez l’identifiant du nœud, la ville du client, l’opérateur réseau et le résultat de la sonde.
  5. Si SSH est accessible mais pas VNC, vérifiez le port VNC, le format de la cible du client et l’état du service graphique.
Échec d’authentification : vérifiez le compte, la version des identifiants et le mode de saisie
  1. Vérifiez que vous utilisez le nom du compte système, et non une adresse e-mail, un identifiant de nœud ou un nom d’appareil.
  2. Vérifiez à nouveau les identifiants temporaires dans la console ; si le mot de passe a été changé, utilisez les nouveaux identifiants.
  3. Vérifiez la disposition du clavier, la casse, les espaces en début ou fin et la saisie des caractères spéciaux. Évitez de copier depuis du texte enrichi.
  4. En cas d’échec de l’authentification par clé SSH, vérifiez que la clé publique est enregistrée dans le bon compte ainsi que les permissions des répertoires et fichiers.
  5. Après plusieurs échecs, cessez les nouvelles tentatives. Notez le client, l’heure et le message retourné, puis ouvrez un ticket.
Affichage lent : distinguez latence élevée, bande passante insuffisante et charge en arrière-plan
  1. Mesurez d’abord la latence aller-retour entre le client et le nœud, puis observez sur la durée la présence éventuelle de variations marquées ou de pertes de paquets.
  2. Mettez en pause la synchronisation du code, le téléchargement des dépendances et l’envoi de fichiers volumineux, puis vérifiez si la saisie redevient réactive.
  3. Réduisez la résolution à 1600×900, la profondeur de couleur à 16 bits, et conservez les autres paramètres inchangés.
  4. Désactivez le fond d’écran animé, les effets de transparence et les fenêtres à rafraîchissement fréquent afin de réduire les changements à l’écran.
  5. Si le problème ne survient qu’avec un client donné, comparez avec un autre client et notez les versions.
Échec du build : cernez le problème par la version, les dépendances, les permissions et les variables d’environnement
  1. Affichez la version actuelle de Xcode, le chemin des outils en ligne de commande, l’architecture et le SDK cible.
  2. Vérifiez les fichiers de verrouillage des dépendances, supprimez les données dérivées du projet, puis effectuez un build complet.
  3. Comparez les versions de Ruby, fastlane, du gestionnaire de paquets et des scripts entre le poste local et le nœud.
  4. Vérifiez que le répertoire de travail, le répertoire temporaire et le répertoire des artefacts disposent des bonnes permissions de lecture et d’écriture.
  5. Conservez la première erreur réelle ainsi que les journaux qui l’entourent ; ne transmettez pas uniquement le code de sortie final.
Espace disque insuffisant : localisez d’abord la croissance, puis nettoyez de manière réversible
  1. Consultez l’espace libre du volume système et mesurez par répertoire la taille du code source, des caches, des données dérivées, des données de simulateur et des archives.
  2. Supprimez d’abord les caches de projet régénérables et les fichiers temporaires des tâches échouées.
  3. Définissez un nombre de rétentions pour les répertoires de travail CI afin d’éviter l’accumulation des extractions et artefacts historiques.
  4. Synchronisez les artefacts à conserver avec le stockage de l’équipe, vérifiez le résultat, puis supprimez la copie du nœud.
  5. Si la charge de travail dépasse durablement la capacité du SSD de 256 Go, évaluez l’option de stockage lors de la commande.

08 / Opérations de sécurité

Traitez la première connexion comme une passation sécurisée

La machine physique dédiée offre des limites de ressources claires. Les comptes, clés, fichiers de projet et sources d’accès du nœud doivent néanmoins être gérés par l’équipe selon le principe du moindre privilège.

Remplacer les identifiants temporaires

Après la première connexion, définissez immédiatement un mot de passe robuste et stockez-le dans l’outil de gestion des identifiants approuvé par l’équipe. Ne transmettez pas de mots de passe dans les journaux de build ni dans des documents ordinaires.

Limiter les sources d’accès distant

Limitez l’exposition de SSH et VNC aux adresses de sortie réellement utilisées par l’équipe. Mettez à jour les règles lorsque le réseau des membres change et ne conservez pas durablement les sources de test temporaires.

Utiliser un compte aux privilèges minimaux

Utilisez des comptes distincts et clairement attribués pour les builds quotidiens, les opérations distantes et le service runner. N’élevez temporairement les privilèges que pour l’installation ou la configuration système, puis quittez ce mode rapidement.

Supprimer les clés temporaires

À la fin d’une migration, d’un diagnostic ou d’une collaboration externe, supprimez les clés publiques temporaires, les jetons à courte durée de vie et les comptes de test. Vérifiez également que les scripts d’automatisation ne font plus référence aux anciens identifiants.

Périmètre de l’anonymisation des journaux :Vous pouvez conserver l’identifiant du nœud, les horodatages, les noms de commandes, les codes de sortie et les traces d’erreur. Supprimez les mots de passe, clés privées, jetons d’accès, éléments de signature, variables d’environnement complètes et données métier sensibles du projet.

09 / Escalade auprès de l’assistance

Fournissez des informations reproductibles pour permettre un diagnostic immédiat

Soumettez en priorité les problèmes techniques via un ticket dans la console afin de les associer à l’instance et de compléter les journaux au fil du temps. Si vous ne pouvez pas accéder à la console ou si vous avez une question commerciale, envoyez un e-mail.

Ticket dans la console

Adapté aux problèmes de nœud et de connexion

Connectez-vous à la console, ouvrez la section des tickets, créez une demande d’assistance technique et associez le nœud concerné. Un ticket doit porter sur un problème principal afin d’éviter de mélanger des anomalies sans rapport.

  • Identifiant du nœud et région
  • Heure de survenue avec fuseau horaire
  • Ville du client, réseau et méthode de connexion
  • Étapes minimales de reproduction et résultat attendu
  • Sorties de commandes et journaux anonymisés
Se connecter à la console et ouvrir un ticket
Adresse e-mail de l’assistance

Adapté à l’accès au compte et aux demandes commerciales

Utilisez comme objet d’e-mail « type de problème + identifiant du nœud ou référence de commande ». Décrivez dans le corps les vérifications déjà effectuées, dans l’ordre chronologique. N’envoyez ni mot de passe, ni clé privée, ni élément de signature non anonymisé.

  • Adresse e-mail de contact et fuseau horaire
  • Périmètre et priorité de l’impact
  • Étapes de diagnostic déjà effectuées
  • Plages horaires disponibles pour le diagnostic
  • Question précise à confirmer
Avant l’envoi Reproduire une fois et noter l’heure exacte
Lors de l’envoi Joindre l’identifiant du nœud et les journaux anonymisés
Après l’envoi Compléter les informations dans le même ticket

Prêt à vous connecter

Les informations du nœud sont prêtes : commencez par la console

Copiez l’adresse du nœud, le compte système et les identifiants actuels, effectuez une vérification SSH, puis ouvrez le bureau du Mac distant. Pour ajouter une machine physique dédiée, consultez directement les modèles fixes et les tarifs de location.