È possibile aggiungere una sezione cloudConfig al codice del modello di vRealize Automation Cloud Assembly, in cui aggiungere comandi di inizializzazione della macchina eseguiti al momento della distribuzione.

  • Linux: i comandi di inizializzazione seguono lo standard cloud-init aperto.
  • Windows: i comandi di inizializzazione utilizzano Cloudbase-init.
Nota: Linux cloud-init e Windows Cloudbase-init non condividono la stessa sintassi. Una sezione cloudConfig per un sistema operativo non funzionerà nell'immagine di una macchina dell'altro sistema operativo.

È possibile utilizzare i comandi di inizializzazione per automatizzare l'applicazione di dati o impostazioni al momento della creazione dell'istanza, che può personalizzare gli utenti, le autorizzazioni, le installazioni e le esecuzioni dei comandi. Gli esempi includono:

  • Impostazione di un nome host
  • Generazione e configurazione di chiavi private SSH
  • Installazione dei pacchetti

In vRealize Automation Cloud Assembly, è anche possibile aggiungere comandi di inizializzazione in anticipo a un'immagine della macchina durante la configurazione dell'infrastruttura. Tutti i modelli cloud che fanno riferimento all'immagine di origine ottengono la stessa inizializzazione.

Importante: È possibile disporre di una mappa immagine e di un modello cloud in cui entrambi contengono comandi di inizializzazione. Al momento della distribuzione, i comandi vengono uniti e vRealize Automation Cloud Assembly esegue i comandi consolidati.

Quando lo stesso comando viene visualizzato in entrambe le posizioni ma include parametri differenti, viene eseguito solo il comando di mappatura dell'immagine.

Per ulteriori dettagli, vedere Ulteriori informazioni sulle mappature dell'immagine in vRealize Automation.

Nell'esempio seguente la sezione cloudConfig è tratta dal codice del modello cloud del caso d'uso di WordPress per il server MySQL basato su Linux.

Per garantire la corretta interpretazione dei comandi, includere sempre il carattere pipe cloudConfig: | come mostrato.

Se uno script cloud-init si comporta in modo imprevisto, controllare l'output della console acquisita in /var/log/cloud-init-output.log durante la risoluzione dei problemi. Per ulteriori informazioni su cloud-init, vedere la documentazione di cloud-init.

      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