U kunt een cloudConfig-sectie toevoegen aan de code van een Cloud Assembly-sjabloon, waarin u machine-initialisatieopdrachten toevoegt die worden uitgevoerd tijdens de implementatie.
cloudConfig-opdrachtnotaties
- Linux — initialisarieopdrachten volgen de open cloud-init-standaard.
- Windows — initialisatieopdrachten maken gebruik van Cloudbase-init.
cloud-init voor Linux en cloudbase-init voor Windows hebben niet dezelfde syntaxis. Een sectie cloudConfig voor één besturingssysteem werkt niet in een machine-image van het andere besturingssysteem.
Wat cloudConfig-opdrachten kunnen doen
U gebruikt initialisatieopdrachten om de applicatie van gegevens of instellingen te automatiseren tijdens het maken van een instantie, waarmee gebruikers, rechten, installaties of andere bewerkingen op basis van opdrachten kunnen worden aangepast. Voorbeelden zijn:
- Een hostnaam instellen
- Persoonlijke SSH-sleutels genereren en instellen
- Pakketten installeren
Waar cloudConfig-opdrachten kunnen worden toegevoegd
U kunt een cloudConfig-sectie toevoegen aan de code van een cloudsjabloon, maar u kunt er vooraf ook een aan een machine-image toevoegen bij het configureren van de infrastructuur. Alle cloudsjablonen die naar de bronimage verwijzen, krijgen dan dezelfde initialisatie.
Mogelijk hebt u een imagetoewijzing en een cloudsjabloon die allebei initialisatieopdrachten bevatten. Tijdens de implementatie worden de opdrachten samengevoegd en voert Cloud Assembly de geconsolideerde opdrachten uit.
Wanneer dezelfde opdracht op beide plaatsen wordt weergegeven maar andere parameters bevat, wordt alleen de opdracht van de imagetoewijzing uitgevoerd.
Zie Meer informatie over imagetoewijzingen in vRealize Automation voor meer informatie.
Voorbeeld van cloudConfig-opdrachten
Het volgende voorbeeld van een cloudConfig-sectie komt uit de cloudsjablooncode van het WordPress-gebruiksscenario voor de op Linux gebaseerde MySQL-server.
Om de juiste interpretatie van commando's te garanderen, moet u altijd het sluisteken cloudConfig: |
toevoegen, zoals getoond.
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
Als een cloud-init-script zich onverwacht gedraagt, controleert u de vastgelegde console-uitvoer in /var/log/cloud-init-output.log
bij het oplossen van problemen. Zie de documentatie voor cloud-init voor meer informatie over cloud-init.
Opdrachten en aanpassingsspecificaties kunnen mogelijk niet door elkaar worden gebruikt
Wanneer u in vSphere implementeert, moet u goed opletten als u initialisatie van de ingesloten opdrachten en aanpassingsspecificaties probeert te combineren. Deze zijn niet formeel compatibel en kunnen inconsistente of ongewenste resultaten opleveren wanneer deze samen worden gebruikt.
Zie Statische IP-adressen van vSphere in Cloud Assembly voor een voorbeeld van interactie tussen opdrachten en aanpassingsspecificaties.