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-config lautet.
    • Ein Shell-Skript, dessen erste Zeile mit #! beginnt, z. B. #!/bin/bash.
  • 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:

nginx installieren
#cloud-config
package_update: true
packages:
  - nginx
runcmd:
  - systemctl enable --now nginx

Dieses cloud-config-Dokument schreibt eine Konfigurationsdatei:

Datei schreiben
#cloud-config
write_files:
  - path: /etc/myapp/config.json
    permissions: "0644"
    content: |
      {"environment": "production"}

Dieses Shell-Skript schreibt eine Message of the Day:

Skript ausführen
#!/bin/bash
echo "Provisioned on $(date -u)" > /etc/motd

Alle 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.

Auf dieser Seite