U kunt een cloudConfig-sectie toevoegen aan de code van een vRealize Automation Cloud Assembly-sjabloon, waarin u machine-initialisatieopdrachten toevoegt die worden uitgevoerd tijdens de implementatie.

Hoe cloudConfig-opdrachten worden samengesteld

  • 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 vRealize Automation 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.

Opmerking:

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 vSphere-toewijzing van statische IP-adressen in vRealize Automation Cloud Assembly-cloudsjablonen voor een voorbeeld van interactie tussen opdrachten en aanpassingsspecificaties.