Share via


Cloud-Init

CycleCloud prend en charge cloud-init comme moyen de configurer une machine virtuelle au premier démarrage avant qu’une autre configuration spécifique à CycleCloud ne se produise sur la machine virtuelle. L’utilisation de cloud-init est un moyen efficace de configurer des aspects d’une machine virtuelle (tels que la mise en réseau, les miroirs yum/apt, etc.) avant l’installation de tout logiciel géré par CycleCloud (planificateurs HPC).

Voici un exemple simple de spécification d’un script bash à exécuter au démarrage à l’aide de l’attribut CloudInit dans un modèle de cluster :

[node scheduler]
CloudInit = '''#!/bin/bash
echo "cloud-init works" > /tmp/cloud-init.txt
'''

Notes

Les chaînes entre guillemets triples peuvent être utilisées dans un modèle de cluster pour spécifier une chaîne multiligne, telle qu’un script bash ou YAML.

Avertissement

Toutes les images de système d’exploitation dans support Azure cloud-init. Reportez-vous à la prise en charge cloud-init des machines virtuelles dans Azure pour plus d’informations sur les images qui prennent en charge cloud-init et les chronologie pour savoir quand une prise en charge plus large sera disponible.

Définition Cloud-Init à l’aide de l’interface utilisateur

L’interface utilisateur CycleCloud prend en charge la modification cloud-init. Lors de la création ou de la modification d’un cluster, un nouvel onglet nommé « Cloud-Init » vous permet de modifier le script cloud-init pour chaque nœud de votre cluster. L’éditeur de l’interface utilisateur CycleCloud autorise toute entrée de texte. La mise en surbrillance de syntaxe est activée pour Python, les scripts Shell ou YAML.

Modification du cloud-init dans l’interface utilisateur CycleCloud

Cloud-Init commande et gestion des erreurs

Pour les nœuds CycleCloud avec CloudInit spécifié, CycleCloud approvisionne la machine virtuelle et attend que cloud-init soit exécuté avant qu’une autre configuration n’ait lieu. Si CloudInit est spécifié sur le nœud et que CycleCloud ne détecte pas la prise en charge du système d’exploitation cloud-init, le nœud passe à un état d’erreur et la raison est relayée à CycleCloud. Si le CloudInit script ne parvient pas à s’exécuter (par exemple, en raison d’une erreur de script ou d’une erreur de syntaxe), le nœud passe à un état d’erreur et l’erreur signalée par cloud-init est relayée à CycleCloud.

Une fois que cloud-init est exécuté sans erreur, CycleCloud continue de configurer la machine virtuelle comme d’habitude.

Important

CycleCloud ne fusionne pas automatiquement les scripts cloud-init. Si un [node defaults] spécifie un cloud-init ainsi qu’un nœud qui hérite des valeurs par défaut, le script cloud-init dans [node defaults] est remplacé. La fusion manuelle de scripts est suggérée lorsque le code doit être partagé. Vous pouvez également utiliser un format de données utilisateur de fichier include pour inclure une liste d’URL à traiter par cloud-init.