Partager via


Cloud-Init

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

L’exemple suivant montre comment spécifier 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
'''

Remarque

Utilisez des chaînes entre guillemets triples 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 Azure ne prennent pas en charge cloud-init. Pour plus d’informations sur les images qui prennent en charge cloud-init et la chronologie pour une prise en charge plus large, consultez la prise en charge cloud-init pour les machines virtuelles dans Azure.

Définir cloud-init à l’aide de l’interface utilisateur

L'interface utilisateur de CycleCloud prend en charge la modification de cloud-init. Lorsque vous créez ou modifiez un cluster, vous pouvez utiliser l’onglet Cloud-Init pour modifier le script cloud-init pour chaque nœud de votre cluster. L’éditeur de l’interface utilisateur CycleCloud accepte toute entrée de texte. Il fournit la mise en surbrillance de la syntaxe pour Python, les scripts shell ou YAML.

Modification de cloud-init dans l’interface utilisateur CycleCloud

Ordonnancement de cloud-init et gestion des erreurs

Pour les nœuds CloudInit spécifiés dans CycleCloud, CycleCloud provisionne la machine virtuelle et attend que cloud-init soit entièrement exécuté avant de démarrer toute autre configuration. Si vous spécifiez CloudInit sur le nœud mais que CycleCloud ne détecte pas la prise en charge du cloud-init pour le système d’exploitation, le nœud passe à un état d’erreur et transmet la raison à 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 relaye l’erreur signalée par cloud-init vers CycleCloud.

Une fois que cloud-init s’exécute jusqu’à la fin sans erreur, CycleCloud continue de configurer la machine virtuelle comme d’habitude.

Important

CycleCloud ne fusionne pas automatiquement les scripts cloud-init. Si vous spécifiez un script cloud-init dans [node defaults] et que vous avez un nœud qui hérite de ces valeurs par défaut, le script cloud-init dans [node defaults] est remplacé. Pour partager du code, nous vous suggérons de fusionner manuellement des scripts. Vous pouvez également utiliser un format de données utilisateur de fichier include pour inclure une liste d’URL que cloud-init prendra en charge.