Guide pratique · De la connexion à l’exécution

Trouvez la prochaine étape
et lancez votre Mac dans le cloud.

Votre nœud est prêt ? Connectez-vous au bureau, changez le mot de passe, puis configurez vos tâches de compilation ou d’inférence. Vous n’avez pas encore commandé ? Consultez d’abord les prérequis, puis choisissez la configuration qui vous convient.

Les adresses et identifiants de connexion figurent dans les détails de l’instance une fois connecté. Cette page n’affiche aucun identifiant et n’effectue aucune action à distance.

Commencez par ces quatre étapes

Première connexion

Suivez les étapes dans l’ordre. Vérifiez d’abord l’instance et les informations de connexion, puis configurez votre chaîne d’outils. Ne confondez pas les problèmes de connexion avec ceux de compilation.

01

Connectez-vous au portail

Connectez-vous au portail avec l’adresse e-mail utilisée lors de la commande, puis suivez les instructions à l’écran pour accéder à votre compte. Dans la liste des instances, vérifiez la configuration, le nœud et la période de facturation associés à votre commande.

Un paiement confirmé ne signifie pas que le système est prêt. Vérifiez d’abord le statut de livraison de l’instance et attendez que ses détails affichent les informations de connexion. Si votre commande est introuvable, vérifiez que l’adresse utilisée correspond à celle de la commande.

Voir l’instance
02

Récupérez vos accès VNC / SSH

Dans les détails d’une instance prête, consultez l’adresse de connexion, le nom d’utilisateur, le mot de passe et le port. Utilisez les informations propres à VNC ou à SSH indiquées sur la page. Ne partez pas du principe que les deux protocoles utilisent le même port.

Lors de votre première connexion SSH, vérifiez les informations de l’hôte avant d’accepter son empreinte. Ne partagez jamais de mot de passe, de clé privée ou de capture d’écran contenant des identifiants dans un dépôt public, une conversation de groupe ou un journal de compilation.

Voir les étapes par plateforme
03

Vérifiez Xcode et les outils en ligne de commande

Vérifiez d’abord le chemin et la version installés avant de décider si une installation est nécessaire. Si votre projet requiert Xcode complet, les seuls outils en ligne de commande ne suffisent pas. Le SDK, le simulateur et les outils de compilation doivent correspondre aux exigences du projet.

xcode-select -p
xcodebuild -version
xcrun --find clang

Installez ou sélectionnez Xcode à l’aide d’un programme d’installation approuvé par votre organisation. Au premier lancement, laissez les composants s’initialiser, puis vérifiez à nouveau les versions dans le terminal. Le changement de répertoire de développement peut nécessiter des droits d’administrateur.

À vérifier : chemin, version, compilateur
04

Changez le mot de passe après la première connexion

Modifiez le mot de passe de l’utilisateur actuel dans les réglages de macOS, ou lancez passwd dans le terminal et suivez les instructions. Choisissez un mot de passe robuste et unique, différent de ceux utilisés pour votre dépôt de code ou votre messagerie.

Après la modification, gardez votre session actuelle ouverte et vérifiez le nouveau mot de passe dans une deuxième connexion. Avant de passer à l’authentification par clé publique SSH, vérifiez également que vous pouvez ouvrir une nouvelle session. Ne désactivez pas la méthode actuelle tant que vous n’avez pas de solution de secours.

Vérifiez la nouvelle connexion avant de fermer l’ancienne
Confiez vos tâches au nœud

Configurez la CI avec un pipeline minimal

Enregistrez le runner, vérifiez l’utilisateur d’exécution et validez la chaîne d’outils avant d’optimiser la concurrence. Les opérations suivantes s’effectuent sur votre nœud. Les autorisations du pipeline sont gérées par votre plateforme d’hébergement de code.

GitHub Actions : enregistrez un runner auto-hébergé

Dans les paramètres Actions du dépôt ou de l’organisation, ajoutez un runner auto-hébergé et sélectionnez macOS et ARM64. Utilisez les commandes de téléchargement et d’enregistrement générées par cette page au moment de la configuration. N’inscrivez pas le jeton d’enregistrement dans un script permanent.

  1. 1Enregistrez-le avec l’utilisateur de compilation

    Effectuez l’enregistrement avec le compte macOS qui exécutera réellement les compilations. Vérifiez qu’il peut lire le répertoire du projet et accéder au trousseau nécessaire à la compilation.

  2. 2Ajoutez une étiquette dédiée

    Attribuez par exemple l’étiquette osxflow-m4 au nœud, puis dirigez un seul workflow de test vers cette étiquette pour éviter qu’un ancien runner ne prenne la tâche en charge en même temps.

  3. 3Testez avant de le laisser tourner

    Lancez-le d’abord de manière interactive et vérifiez que le workflow aboutit. Configurez ensuite son fonctionnement en continu en suivant la documentation fournie avec le runner. Après vous être reconnecté, vérifiez le processus et son état de connexion sur la plateforme.

jobs:
  verify:
    runs-on: [self-hosted, macOS, ARM64, osxflow-m4]
    steps:
      - run: |
          uname -m
          xcodebuild -version
          xcrun --find clang

Ne laissez pas des contributions externes non fiables utiliser directement un runner qui détient des éléments de signature. Une fois le pipeline de test validé, migrez les processus de publication et les variables secrètes.

GitLab Runner : choisissez l’exécuteur shell

Enregistrez le runner avec les informations d’authentification créées dans les paramètres du projet ou du groupe, puis sélectionnez l’exécuteur shell. Les tâches s’exécutent ainsi dans l’environnement de l’utilisateur du nœud, sans isolation de conteneur.

Commencez par limiter la concurrence à 1 afin d’éviter les conflits entre plusieurs tâches de signature ou écritures de cache. Vérifiez que le PATH, le répertoire de développement et l’environnement Ruby du runner correspondent à ceux utilisés lors des tests manuels.

concurrent = 1

[[runners]]
  executor = "shell"
  shell = "bash"

Ces lignes ne sont qu’un extrait des champs à configurer après l’enregistrement, pas une configuration complète. Conservez l’adresse, les informations d’authentification et les autres champs générés par l’outil d’enregistrement. Ne remplacez pas le fichier entier par cet extrait.

Attribuez une étiquette dédiée au runner et demandez aux tâches de test d’afficher whoami, pwd et xcode-select -p. Si la compilation fonctionne dans le terminal mais échoue dans la CI, comparez d’abord l’utilisateur, les chemins et les variables d’environnement au lieu de réinstaller les outils.

Fastlane : séparez les éléments de signature du code

Importez les certificats, les clés privées et les profils de provisionnement selon le processus d’autorisation de votre équipe. Ne les stockez pas dans le dépôt de code et n’affichez pas les mots de passe de déchiffrement dans la sortie de Fastlane.

  • Utilisez un trousseau distinct pour la CI et limitez l’accès aux fichiers. L’utilisateur de compilation doit pouvoir le déverrouiller et le lire.
  • Transmettez les mots de passe via les variables secrètes de la plateforme d’hébergement de code et évitez de les intégrer directement à des commandes susceptibles de les afficher.
  • Placez les profils de provisionnement conformément aux exigences de la version de Xcode utilisée et vérifiez, avec une archive minimale, que l’équipe, le certificat et le profil correspondent.
  • Supprimez les fichiers de signature temporaires après l’export. Avant la fin de la location du nœud, révoquez les enregistrements de runner et les jetons d’accès qui ne sont plus utilisés.

Une machine physique dédiée ne remplace pas la gestion des autorisations du projet. Toute personne autorisée à modifier le pipeline de publication peut potentiellement accéder à l’environnement de signature via une tâche. Vérifiez également les droits sur le dépôt.

Validez d’abord, augmentez la taille des modèles ensuite

Réalisez une expérience d’inférence reproductible avec MLX

Flow M4 Pro est équipé d’une puce M4 Pro, de 64GB de mémoire et de 2TB de stockage. La mémoire unifiée est partagée entre le système et vos tâches : les 64GB ne sont pas entièrement disponibles pour le modèle. Prévoyez aussi de la mémoire pour les poids, le contexte et les caches d’exécution.

Créez un environnement Python isolé

Vérifiez d’abord que Python s’exécute en architecture ARM64, puis créez un environnement virtuel pour chaque expérience. Évitez de mélanger les dépendances de différents projets de modèles dans l’environnement système.

python3 -c "import platform; print(platform.machine())"
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install mlx-lm
python -m pip freeze > requirements.lock.txt

Conservez la liste des dépendances, la version de Python et celle du modèle. Pour reproduire une expérience, réinstallez d’abord le même environnement, puis comparez les résultats et l’utilisation des ressources.

Objectif : environnement isolé et dépendances reproductibles

Commencez par un petit modèle et un contexte court

Choisissez un modèle quantifié compatible avec MLX que vous êtes autorisé à utiliser, puis lisez sa documentation. Notez la quantification, la longueur du contexte et celle de la génération : la taille du fichier du modèle ne suffit pas pour le comparer.

python -m mlx_lm.generate --help

Suivez l’aide de la version installée pour fournir le modèle et le prompt. Effectuez d’abord une seule inférence, puis augmentez progressivement le contexte. Surveillez la pression mémoire et la mémoire d’échange dans le Moniteur d’activité ; si la pression continue de monter, réduisez la charge.

Pour comparer les expériences, gardez le même prompt, la même longueur de génération et le même niveau de concurrence. Les résultats de modèles et de méthodes de quantification différents ne permettent pas de comparer directement les performances des nœuds.

Débit non garanti, modèle non garanti comme compatible

Séparez les fichiers de modèles des projets

Si vous avez besoin de plus d’espace, sélectionnez le SSD +2TB dans les options de commande. Vérifiez d’abord le chemin de montage et l’espace disponible sur le nœud, puis déplacez-y les poids des modèles et le cache des téléchargements. Tous les nœuds n’utilisent pas nécessairement le même nom de volume.

Avant la migration, arrêtez les tâches qui utilisent le modèle. Une fois la copie terminée, vérifiez le nombre et la taille des fichiers, puis modifiez le chemin du modèle ou la configuration du cache de l’outil. Ne supprimez l’ancienne copie qu’après avoir confirmé qu’un chargement fonctionne.

Une extension de stockage ne remplace pas une sauvegarde. Conservez ailleurs les versions des modèles, les configurations et les résultats importants, dans un emplacement que vous contrôlez.

Voir les extensions de stockage et les tarifs
Parlons le même langage

Huit termes courants, expliqués simplement

Ces définitions s’appliquent aux commandes, aux connexions et aux tickets. En utilisant les mêmes termes pour décrire un problème, vous distinguerez plus facilement la machine, le protocole de connexion et la facturation.

Nœud physique
Le véritable Mac qui héberge votre service de location, et non le client de bureau à distance.Quand l’utiliser : indiquez le numéro du nœud visible dans les détails de l’instance lorsque vous ouvrez un ticket, plutôt que de parler simplement de « la machine ».
Dédié
Pendant la période de location, toute la machine est réservée à vos tâches. Le CPU, le GPU et la mémoire unifiée ne sont pas partagés avec d’autres clients.Quand l’utiliser : même pour les compilations parallèles, vous devez gérer la concurrence entre vos propres tâches.
Non virtualisé
Vous utilisez macOS directement sur un Mac physique, et non une instance virtualisée sur un hôte partagé.Quand l’utiliser : vérifiez la compatibilité de la chaîne d’outils Apple Silicon et de la version de macOS avec votre projet.
VNC
Protocole d’accès à distance qui transmet l’affichage du bureau ainsi que les entrées clavier et souris, adapté aux opérations graphiques.Quand l’utiliser : lors du premier lancement de Xcode, pour modifier les réglages système ou consulter le Moniteur d’activité.
Partage d’écran
Fonctionnalité macOS de bureau à distance qui permet de se connecter au nœud à l’aide des informations fournies avec l’instance.Quand l’utiliser : depuis un Mac local, ouvrez Finder, choisissez « Se connecter au serveur » et accédez au bureau distant.
Runner auto-hébergé
Processus que vous enregistrez et gérez pour exécuter des tâches de pipeline sur votre propre nœud.Quand l’utiliser : utilisez une étiquette dédiée pour envoyer le pipeline de publication vers ce Mac dans le cloud.
Période de facturation
Unité prépayée choisie à la commande : jour, semaine, mois ou trimestre. Elle est distincte de la durée d’exécution d’une tâche de compilation.Quand l’utiliser : même après la fin d’une publication, vérifiez la date d’expiration de la commande et exportez vos données à l’avance.
Connexion Thunderbolt 5
Option de collaboration entre plusieurs machines, facturée pour chacune d’elles. Elle ne fusionne pas automatiquement leur mémoire en une mémoire unifiée.Quand l’utiliser : avant de planifier des tâches sur plusieurs nœuds, vérifiez que votre application prend en charge le mode d’exécution distribué correspondant.
Ne modifiez qu’une variable à la fois

Problèmes courants : procédez dans cet ordre

Notez d’abord le message d’erreur exact, puis modifiez la configuration. Gardez une session connectée et ne désactivez pas votre seul moyen d’accès pour effectuer un test.

VNC se connecte, mais l’écran reste noir

Vérifiez d’abord dans les détails de l’instance que le système est prêt, puis contrôlez l’adresse et le port VNC. Déconnectez les autres clients et réessayez avec un seul client. Vous pouvez aussi réduire la résolution ou désactiver l’adaptation automatique de la qualité d’image afin de distinguer un problème d’affichage du client d’un problème de session sur le nœud.

Si SSH fonctionne encore, ne redémarrez pas immédiatement un nœud qui exécute des tâches. Notez le nom et la version du client, les opérations effectuées avant l’écran noir et la disponibilité de SSH. Joignez au ticket une capture d’écran sans identifiants.

Voir les méthodes de connexion par plateforme
Connexion SSH refusée : quelle erreur vérifier en premier ?

Connection refused : vérifiez d’abord l’adresse, le port et l’état du service. En cas de délai d’attente, examinez le réseau local, le proxy et les restrictions d’accès. Pour Permission denied, vérifiez plutôt le nom d’utilisateur et le mode d’authentification ; une erreur d’authentification n’est pas un problème réseau.

Pour diagnostiquer la connexion, utilisez ssh -v afin d’examiner chaque étape. Ne publiez pas le journal de débogage complet ; masquez l’adresse, le nom d’utilisateur, le chemin de la clé et toute information d’authentification avant de le partager. Si vous utilisez une clé privée, vérifiez ses permissions et la correspondance avec la clé publique du serveur.

Si vous pouvez toujours accéder au bureau graphique, vérifiez l’état de l’ouverture de session à distance dans les réglages système. En cas de doute, ouvrez un ticket en indiquant le message d’erreur exact, le numéro du nœud et le port utilisé. Évitez de modifier plusieurs réglages d’authentification à la fois.

Le téléchargement ou l’installation de Xcode est très lent

Déterminez d’abord si le processus télécharge, vérifie ou décompresse les fichiers. Observez le trafic réseau, l’activité du processeur et celle du disque : une baisse temporaire du trafic réseau ne signifie pas nécessairement que le téléchargement est interrompu si le disque reste actif. Ne lancez pas plusieurs installations identiques en même temps.

Vérifiez que le disque de destination peut accueillir le programme d’installation, les fichiers extraits et le cache du projet. Pour installer une version précise, utilisez un programme d’installation approuvé par votre organisation et vérifiez son intégrité. Après l’installation, relancez xcodebuild -version pour confirmer que la CI et l’interface graphique utilisent la même version.

Dans votre ticket, indiquez la version de Xcode, l’étape en cours, l’espace disponible et l’utilisation éventuelle d’un proxy. Évitez de vous limiter à « c’est très lent ».

Disque presque plein : nettoyer le cache ou ajouter du stockage ?

Vérifiez d’abord la capacité du volume, puis repérez les répertoires volumineux. Les commandes ci-dessous se contentent de lire les capacités et ne suppriment aucun fichier. L’analyse de grands répertoires utilisateur peut prendre un certain temps.

df -h
du -sh "$HOME/Library/Developer/Xcode/DerivedData"
du -sh "$HOME/Library/Caches"

Mettez les compilations en pause avant de supprimer les caches recréables. Ne supprimez pas des répertoires entiers contenant des trousseaux, des éléments de signature, les fichiers source du projet ou l’unique copie d’un modèle. Après le nettoyage, la première compilation régénère généralement des fichiers : tenez-en compte dans votre calendrier de publication.

Pour les poids de modèles et les artefacts de compilation qui augmentent régulièrement, mieux vaut prévoir une capacité distincte. Consultez les options SSD +1TB et SSD +2TB. Pour modifier une commande existante, vérifiez la marche à suivre dans un ticket via le portail. Ne supposez pas que l’extension déplacera automatiquement votre projet.

Voir les options SSD
Pour aller au-delà des manipulations

Découvrez nos articles techniques

Cette page vous indique quoi faire ensuite. Pour approfondir les pratiques de compilation, le choix du matériel et la protection des données, consultez le catalogue des articles techniques. Leurs titres, résumés et dates de publication sont ceux affichés dans le catalogue.

Préparez les informations utiles

Toujours bloqué ? Joignez ces trois éléments à votre ticket

Si vous avez déjà commandé, connectez-vous au portail pour ouvrir un ticket associé à votre instance. N’envoyez ni mot de passe, ni clé privée, ni numéro de carte complet, ni capture d’écran contenant des identifiants.

  1. 01Identifiez l’instance

    Indiquez le numéro du nœud, le numéro de commande, ainsi que l’heure approximative du problème et le fuseau horaire. Pour une question de paiement, communiquez uniquement les informations permettant d’identifier la transaction, jamais des données d’authentification.

  2. 02Décrivez les étapes

    Précisez les actions effectuées, le résultat attendu et ce qui s’est réellement passé. Pour un problème de connexion, indiquez le client et sa version ; pour un problème de compilation, indiquez les versions de la chaîne d’outils.

  3. 03Listez vos vérifications

    Copiez le message d’erreur en masquant les données sensibles, indiquez si le bureau graphique ou SSH fonctionne encore et précisez si une tâche en cours ne peut pas être interrompue.

Inutile de tout reprendre depuis le début :
joignez vos résultats de vérification.

Ouvrez un ticket depuis le portail pour l’associer à votre instance. Pour un conseil avant commande, une question par e-mail ou un problème de facturation, consultez d’abord les informations de contact.