Vous pouvez ajouter une section cloudConfig au code de modèle de cloud Cloud Assembly, où vous ajoutez des commandes d'initialisation de machine qui s'exécutent au moment du déploiement.

Formats de commande cloudConfig

  • Linux : les commandes d'initialisation suivent la norme cloud-init ouverte.
  • Windows : les commandes d'initialisation utilisent Cloudbase-init.

Les commandes cloud-init de Linux et Cloudbase-init de Windows ne partagent pas la même syntaxe. Une section cloudConfig pour l'un des systèmes d'exploitation ne fonctionnera pas dans une image de machine de l'autre système d'exploitation.

Possibilités des commandes cloudConfig

Les commandes d'initialisation vous permettent d'automatiser l'application des données ou des paramètres au moment de la création de l'instance, ce qui peut personnaliser les utilisateurs, les autorisations, les installations ou toute autre opération basée sur une commande. Les exemples incluent notamment :

  • Définition d'un nom d'hôte
  • Génération et configuration de clés privées SSH
  • Installation des modules

Où les commandes cloudConfig peuvent-elles être ajoutées

Vous pouvez ajouter une section cloudConfig au code de modèle de cloud, mais vous pouvez également en ajouter une à une image de machine à l'avance, lors de la configuration de l'infrastructure. Ensuite, tous les modèles de cloud qui font référence à l'image source obtiennent la même initialisation.

Vous pouvez disposer d'un mappage d'image et d'un modèle de cloud contenant tous deux des commandes d'initialisation. Au moment du déploiement, les commandes fusionnent et Cloud Assembly exécute les commandes ainsi regroupées.

Lorsque la même commande figure dans les deux emplacements mais inclut des paramètres différents, seule la commande du mappage d'image est exécutée.

Consultez En savoir plus sur les mappages d'image dans vRealize Automation Cloud pour plus d'informations.

Exemples de commandes cloudConfig

L'exemple de section cloudConfig suivant est extrait du code de modèle de cloud du cas d'utilisation de WordPress pour le serveur MySQL basé sur le système d'exploitation Linux.

Note :

Pour garantir une interprétation correcte des commandes, incluez toujours le caractère cloudConfig: | (barre verticale) comme indiqué.

      cloudConfig: |
        #cloud-config
        repo_update: true
        repo_upgrade: all
        packages:
         - apache2
         - php
         - php-mysql
         - libapache2-mod-php
         - php-mcrypt
         - mysql-client
        runcmd:
         - mkdir -p /var/www/html/mywordpresssite && cd /var/www/html && wget https://wordpress.org/latest.tar.gz && tar -xzf /var/www/html/latest.tar.gz -C /var/www/html/mywordpresssite --strip-components 1
         - i=0; while [ $i -le 5 ]; do mysql --connect-timeout=3 -h ${DBTier.networks[0].address} -u root -pmysqlpassword -e "SHOW STATUS;" && break || sleep 15; i=$((i+1)); done
         - mysql -u root -pmysqlpassword -h ${DBTier.networks[0].address} -e "create database wordpress_blog;"
         - mv /var/www/html/mywordpresssite/wp-config-sample.php /var/www/html/mywordpresssite/wp-config.php
         - sed -i -e s/"define( 'DB_NAME', 'database_name_here' );"/"define( 'DB_NAME', 'wordpress_blog' );"/ /var/www/html/mywordpresssite/wp-config.php && sed -i -e s/"define( 'DB_USER', 'username_here' );"/"define( 'DB_USER', 'root' );"/ /var/www/html/mywordpresssite/wp-config.php && sed -i -e s/"define( 'DB_PASSWORD', 'password_here' );"/"define( 'DB_PASSWORD', 'mysqlpassword' );"/ /var/www/html/mywordpresssite/wp-config.php && sed -i -e s/"define( 'DB_HOST', 'localhost' );"/"define( 'DB_HOST', '${DBTier.networks[0].address}' );"/ /var/www/html/mywordpresssite/wp-config.php
         - service apache2 reload

Si un script cloud-init se comporte de manière inattendue, vérifiez la sortie de la console capturée dans /var/log/cloud-init-output.log lors du dépannage. Pour plus d'informations sur cloud-init, reportez-vous à la documentation cloud-init.

Les commandes et les spécifications de personnalisation peuvent ne pas mélanger

Lors d'un déploiement sur vSphere, procédez avec prudence si vous tentez de combiner une commande intégrée cloudConfig et l'initialisation de spécification de personnalisation. Ils ne sont pas officiellement compatibles et peuvent produire des résultats incohérents ou indésirables lorsqu'ils sont utilisés ensemble.

Pour obtenir un exemple de l'interaction entre les commandes et les spécifications de personnalisation, consultez Adresses IP statiques vSphere dans Cloud Assembly.