Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: ✔️ Linux-VMs ✔️ Flexible Skalierungsgruppen
In diesem Artikel wird gezeigt, wie Sie cloud-init zum Ausführen eines vorhandenen Bash-Skripts auf einem virtuellen Linux-Computer (VM) oder in VM-Skalierungsgruppen (VMSS) während der Bereitstellung in Azure verwenden. Diese cloud-init-Skripts werden beim erstmaligen Starten ausgeführt, nachdem die Ressourcen von Azure bereitgestellt wurden. Weitere Informationen zur nativen Funktionsweise von „cloud-init“ in Azure und zu den unterstützten Linux-Distributionen finden Sie in der Übersicht zu „cloud-init“.
Ausführen von Bash-Skripts mit cloud-init
Mit cloud-Init müssen Sie Ihre vorhandenen Skripts nicht in eine Cloudkonfiguration konvertieren, da cloud-init verschiedene Eingabetypen akzeptiert, zu denen auch Bash-Skripts gehören.
Wenn Sie die Azure-Erweiterung für benutzerdefinierte Linux-Skripts zum Ausführen Ihrer Skripts verwendet haben, können Sie diese mit cloud-init migrieren. Obwohl Azure-Erweiterungen Warnungen zu Skriptfehlern integriert haben, scheitert die Bereitstellung eines cloud-init-Images NICHT, wenn das Skript fehlerhaft ist.
Um diese Funktionalität in Aktion sehen zu können, erstellen Sie zu Testzwecken ein einfaches Bash-Skript. Wie die cloud-init-Datei #cloud-config muss auch dieses Skript lokal auf dem Computer gespeichert werden, auf dem Sie die Befehle der Azure-Befehlszeilenschnittstelle ausführen, um den virtuellen Computer bereitzustellen. Erstellen Sie für dieses Beispiel die Datei in der Cloud Shell, nicht auf dem lokalen Computer. Dazu können Sie einen beliebigen Editor verwenden. Stellen Sie sicher, dass die gesamte cloud-init-Datei ordnungsgemäß kopiert wird, insbesondere die erste Zeile.
#!/bin/sh
echo "this has been written via cloud-init" + $(date) >> /tmp/myScript.txt
Vor der Bereitstellung dieses Images müssen Sie mit dem Befehl az group create eine Ressourcengruppe erstellen. Eine Azure-Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden. Das folgende Beispiel erstellt eine Ressourcengruppe mit dem Namen myResourceGroup am Standort eastus.
az group create --name myResourceGroup --location eastus
Erstellen Sie nun mit dem Befehl az vm create eine VM, und geben Sie mit --custom-data simple_bash.sh die Bash-Skriptdatei wie folgt an:
az vm create \
--resource-group myResourceGroup \
--name vmName \
--image imageCIURN \
--custom-data simple_bash.sh \
--generate-ssh-keys
Hinweis
Ersetzen Sie die Werte myResourceGroup, vmName und imageCIURN entsprechend. Stellen Sie sicher, dass ein Image mit Cloud-init ausgewählt ist.
Überprüfen, ob das Bash-Skript ausgeführt wurde
Stellen Sie eine SSH-Verbindung mit der öffentlichen IP-Adresse Ihrer VM her, die aus der Ausgabe des vorherigen Befehls hervorgeht. Geben Sie Ihren eigenen user und Ihre eigene publicIpAddress wie folgt ein:
ssh <user>@<publicIpAddress>
Vergewissern Sie sich, dass die /tmp/myScript.txt-Datei vorhanden und der entsprechende Text darin enthalten ist.
sudo cat /tmp/myScript
Falls nicht, können Sie /var/log/cloud-init.log auf weitere Details überprüfen. Suchen Sie nach dem folgenden Eintrag:
sudo cat /var/log/cloud-init.log
Running config-scripts-user using lock Running command ['/var/lib/cloud/instance/scripts/part-001']
Nächste Schritte
Weitere cloud-init-Beispiele für Änderungen an der Konfiguration finden Sie in den folgenden Themen: