Sie können einen cloudConfig-Abschnitt im Cloud Assembly-Vorlagencode einfügen, dem Sie zur Bereitstellungszeit auszuführende Initialisierungsbefehle für Maschinen hinzufügen.
cloudConfig-Befehlsformate
- Linux – Initialisierungsbefehle folgen dem offenen cloud-init-Standard.
- Windows – Initialisierungsbefehle verwenden Cloudbase-init.
Linux cloud-init und Windows Cloudbase-init verwenden nicht dieselbe Syntax. Ein cloudConfig-Abschnitt für ein Betriebssystem funktioniert nicht in einem Maschinen-Image des anderen Betriebssystems.
Anwendungsmöglichkeiten von cloudConfig-Befehlen
Sie verwenden Initialisierungsbefehle, um die Anwendung von Daten oder Einstellungen zum Zeitpunkt der Instanzerstellung zu automatisieren, wodurch Benutzer, Berechtigungen, Installationen oder andere befehlsbasierte Vorgänge angepasst werden können. Zu den Beispielen gehören:
- Festlegen eines Hostnamens
- Erstellen und Einrichten von privaten SSH-Schlüsseln
- Installieren von Paketen
Möglichkeiten für das Hinzufügen von cloudConfig-Befehlen
Sie können einen cloudConfig-Abschnitt dem Cloud-Vorlagencode hinzufügen, aber Sie können einen solchen Abschnitt auch im Voraus einem Maschinen-Image hinzufügen, wenn Sie die Infrastruktur konfigurieren. Alle Cloud-Vorlagen, die auf dieses Quell-Image verweisen, erhalten dieselbe Initialisierung.
Möglicherweise verfügen Sie über eine Image-Zuordnung und eine Cloud-Vorlage, die beide Initialisierungsbefehle enthalten. Zum Zeitpunkt der Bereitstellung werden die Befehle zusammengeführt. Die konsolidierten Befehle werden dann von Cloud Assembly ausgeführt.
Wenn derselbe Befehl an beiden Positionen angezeigt wird, aber unterschiedliche Parameter enthält, wird nur der Image-Zuordnungsbefehl ausgeführt.
Zusätzliche Informationen hierzu finden Sie unter Weitere Informationen zu Image-Zuordnungen in vRealize Automation.
Beispiel für cloudConfig-Befehle
Der folgende cloudConfig-Beispielabschnitt stammt aus dem Cloud-Vorlagencode des WordPress-Anwendungsbeispiels für den Linux-basierten MySQL-Server.
Um die korrekte Interpretation von Befehlen zu gewährleisten, fügen Sie immer einen senkrechten Strich (cloudConfig: |
) hinzu, wie in der Abbildung gezeigt.
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
Wenn ein cloud-init-Skript unerwartetes Verhalten aufweist, überprüfen Sie die erfasste Konsolenausgabe in /var/log/cloud-init-output.log
zur Fehlerbehebung. Weitere Informationen zu cloud-init finden Sie in der cloud-init-Dokumentation.
Befehle und Anpassungsspezifikationen lassen sich möglicherweise nicht kombinieren
Gehen Sie bei der Bereitstellung in vSphere umsichtig vor, wenn Sie versuchen, einen eingebetteten cloudConfig-Befehl mit der Initialisierung der Anpassungsspezifikation zu kombinieren. Sie sind in formaler Hinsicht nicht kompatibel und verursachen möglicherweise inkonsistente oder unerwünschte Ergebnisse, wenn sie gemeinsam verwendet werden.
Ein Beispiel dafür, wie Befehle und Anpassungsspezifikationen interagieren, finden Sie unter Statische vSphere-IP-Adressen in Cloud Assembly.