Puede agregar una sección de cloudConfig al código de plantilla de Cloud Assembly, en la que se agregan comandos de inicialización de la máquina que se ejecutan en el momento de la implementación.

Formatos del comando cloudConfig

  • Linux: los comandos de inicialización siguen el estándar cloud-init abierto.
  • Windows: los comandos de inicialización utilizan Cloudbase-init.

Cloud-init de Linux y Cloudbase-init de Windows no comparten la misma sintaxis. Una sección de cloudConfig para un sistema operativo no funcionará en una imagen de máquina del otro sistema operativo.

Qué pueden hacer los comandos de cloudConfig

Los comandos de inicialización se utilizan para automatizar la aplicación de datos u opciones de configuración en el momento de creación de la instancia, que puede personalizar usuarios, permisos, instalaciones o cualquier otra operación basada en comandos. Algunos ejemplos son los siguientes:

  • Configurar un nombre de host
  • Generar y configurar claves privadas SSH
  • Instalar paquetes

Dónde se pueden agregar comandos de cloudConfig

Puede agregar una sección de cloudConfig al código de plantilla de nube, pero también puede agregar de antemano una a una imagen de máquina al configurar la infraestructura. Luego, todas las plantillas de nube que hacen referencia a la imagen de origen obtienen la misma inicialización.

Es posible que tenga tanto un mapa de imagen como una plantilla de nube que contengan comandos de inicialización. En el momento de la implementación, los comandos se combinan y Cloud Assembly ejecuta los comandos consolidados.

Cuando el mismo comando aparece en ambos lugares, pero incluye distintos parámetros, solo se ejecuta el comando del mapa de imagen.

Consulte Más información sobre las asignaciones de imagen en vRealize Automation para obtener más detalles.

Comandos cloudConfig de ejemplo

El siguiente ejemplo de sección de cloudConfig se tomó del código de plantilla de nube del caso práctico de WordPress para el servidor MySQL basado en Linux.

Nota:

Para garantizar una interpretación correcta de los comandos, incluya siempre el carácter de canalización cloudConfig: | como se muestra.

      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 de cloud-init se comporta de forma inesperada, compruebe la salida de la consola capturada en /var/log/cloud-init-output.log durante la solución de problemas. Para obtener más información sobre cloud-init, consulte la documentación de cloud-init.

Es posible que los comandos y las especificaciones de personalización no se combinen

Cuando se implementa en vSphere, proceda con cuidado si intenta combinar el comando integrado de cloudConfig y la inicialización de la especificación de personalización. No son compatibles de manera formal y pueden generar resultados incoherentes o no deseados cuando se usan al mismo tiempo.

Para obtener un ejemplo de cómo interactúan los comandos y las especificaciones de personalización, consulte Direcciones IP estáticas de vSphere en Cloud Assembly.