È 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.

Come sono formati i comandi cloudConfig

  • Linux: i comandi di inizializzazione seguono lo standard cloud-init aperto.
  • Windows: i comandi di inizializzazione utilizzano Cloudbase-init.

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.

Cosa possono eseguire i comandi cloudConfig

È possibile utilizzare i comandi di inizializzazione per automatizzare l'applicazione di dati o impostazioni al momento della creazione dell'istanza. In questo modo è possibile personalizzare gli utenti, le autorizzazioni, le installazioni e tutte le altre operazioni basate sui comandi. Gli esempi includono:

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

Posizione in cui è possibile aggiungere i comandi cloudConfig

È possibile aggiungere una sezione cloudConfig al codice del modello cloud, ma è anche possibile aggiungerne una in anticipo a un'immagine della macchina durante la configurazione dell'infrastruttura. Quindi, tutti i modelli cloud che fanno riferimento all'immagine di origine ottengono la stessa inizializzazione.

È 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.

Comandi cloudConfig di esempio

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.

Nota:

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

      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

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.

Comandi e specifiche di personalizzazione potrebbero non essere combinati

Quando si distribuisce in vSphere, procedere con cautela se si tenta di combinare l'inizializzazione del comando cloudConfig incorporato e delle specifiche di personalizzazione. Formalmente non sono compatibili e potrebbero produrre risultati incoerenti o indesiderati quando vengono utilizzate insieme.

Per un esempio di interazione tra i comandi e le specifiche di personalizzazione, vedere Assegnazione di indirizzi IP statici di vSphere nei modelli cloud di vRealize Automation Cloud Assembly.