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