VM beim ersten Start mit cloud-init konfigurieren
Übergeben Sie beim Erstellen einer VM Benutzerdaten für cloud-init, um beim ersten Start Pakete zu installieren, Dateien zu schreiben und Befehle auszuführen.
Benutzerdaten sind eine Konfiguration oder ein Skript, das cloud-init beim ersten Start einer Instanz ausführt. Damit installieren Sie Pakete, schreiben Dateien und führen Befehle aus, ohne sich bei der Instanz anzumelden.
Voraussetzungen
- Verwenden Sie ein Abbild, das cloud-init ausführt. Ohne cloud-init erhält die Instanz weder Ihre Benutzerdaten noch ihre SSH-Schlüssel.
- Bereiten Sie Ihre Benutzerdaten als Text in einem dieser Formate vor:
- Ein cloud-config-Dokument, dessen erste Zeile
#cloud-configlautet. - Ein Shell-Skript, dessen erste Zeile mit
#!beginnt, z. B.#!/bin/bash.
- Ein cloud-config-Dokument, dessen erste Zeile
- Planen Sie vorausschauend: Benutzerdaten können Sie nur beim Erstellen einer Instanz festlegen, und die Plattform verweigert Änderungen daran bei einer vorhandenen Instanz. Um andere Benutzerdaten zu verwenden, erstellen Sie eine neue Instanz.
Benutzerdaten hinzufügen
Wechseln Sie im Erstellungsassistenten zum Schritt Erweitert.
Fügen Sie im Feld Benutzerdaten (cloud-init) Ihre Benutzerdaten ein. Um sie stattdessen aus einer Textdatei zu laden, wählen Sie Aus Datei laden aus.
Schließen Sie den Assistenten ab, und erstellen Sie die Instanz. Siehe Virtuelle Maschine erstellen.
- Fügen Sie Klartext ein. Die Plattform codiert die Benutzerdaten für Sie in Base64.
- Aus Datei laden ersetzt den Inhalt des Felds durch den Text der Datei, den Sie anschließend noch bearbeiten können. Eine Datei, die kein Text ist, z. B. ein Bild oder ein Programm, wird abgelehnt.
- Der Assistent speichert Benutzerdaten nicht in seinem Entwurf. Wenn Sie den Assistenten neu laden, geben Sie die Benutzerdaten erneut ein.
- Die REST-Entsprechung im Prüfschritt enthält Ihre Benutzerdaten im Klartext. Berücksichtigen Sie das, wenn Ihre Benutzerdaten Secrets enthalten.
Beispiele
Dieses cloud-config-Dokument aktualisiert den Paketindex, installiert nginx und stellt sicher, dass der Dienst läuft:
#cloud-config
package_update: true
packages:
- nginx
runcmd:
- systemctl enable --now nginxDieses cloud-config-Dokument schreibt eine Konfigurationsdatei:
#cloud-config
write_files:
- path: /etc/myapp/config.json
permissions: "0644"
content: |
{"environment": "production"}Dieses Shell-Skript schreibt eine Message of the Day:
#!/bin/bash
echo "Provisioned on $(date -u)" > /etc/motdAlle cloud-config-Optionen finden Sie in der cloud-init-Dokumentation.
Benutzerdaten und Anmeldeeinstellungen
Ihre Benutzerdaten müssen weder die SSH-Schlüssel noch das Admin-Konto enthalten. Die Plattform richtet beides anhand Ihrer Auswahl im Erstellungsassistenten ein.
Ergebnis prüfen
Melden Sie sich bei der Instanz an. Siehe Verbindung mit einer virtuellen Maschine herstellen.
Führen Sie cloud-init status --long aus, um zu sehen, ob cloud-init abgeschlossen ist und ob Fehler gemeldet wurden.
Wenn Sie sich nicht anmelden können, laden Sie auf der Registerkarte Verbinden der Instanz das serielle Konsolenprotokoll herunter, um die Startausgabe zu prüfen. Siehe Serielles Konsolenprotokoll herunterladen.