Verwenden Sie Cloud-Init auf AL2 - Amazon Linux 2

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden Sie Cloud-Init auf AL2

Das Cloud-Init-Paket ist eine von Canonical entwickelte Open-Source-Anwendung, die zum Bootstrap von Linux-Images in einer Cloud-Computing-Umgebung wie Amazon verwendet wird. EC2 Amazon Linux enthält eine angepasste Version von cloud-init. Auf diese Weise können Sie Aktionen angeben, die beim Booten auf Ihrer Instance ausgeführt werden sollen. Sie können die gewünschten Aktionen beim Start einer Instance über die Benutzerdatenfelder an cloud-init übergeben. Das bedeutet, dass Sie Common AMIs für viele Anwendungsfälle verwenden und sie beim Start dynamisch konfigurieren können. Amazon Linux verwendet cloud-init auch für die Anfangskonfiguration des ec2-user-Kontos.

Weitere Informationen finden Sie in der cloud-init-Dokumentation.

Amazon Linux verwendet die cloud-init-Aktionen aus /etc/cloud/cloud.cfg.d und /etc/cloud/cloud.cfg. Sie können Ihre eigenen cloud-init-Aktionsdateien unter erstelle /etc/cloud/cloud.cfg.d. Alle Dateien in diesem Verzeichnis werden von cloud-init eingelesen. Sie werden in lexikografischer Reihenfolge eingelesen, wobei später eingelesene Dateien die Werte in früher eingelesenen Dateien überschreiben.

Das cloud-init-Paket führt diese (und andere) allgemeine Konfigurationsaufgaben für Instances während des Bootvorgangs durch:

  • Einstellen des Standard-Gebietsschemas.

  • Einstellen des Hostnamens.

  • Analysieren und Verarbeiten von Benutzerdaten.

  • Generieren privater SSH-Schlüssel für den Host.

  • Hinzufügen der öffentlichen SSH-Schlüssel eines Benutzers zu .ssh/authorized_keys, um eine einfache Anmeldung und Administration zu ermöglichen.

  • Vorbereiten der --Repositorys für die Paketverwaltung.

  • Verarbeiten der in den Benutzerdaten definierten Paketaktionen.

  • Führen Sie Benutzerskripts aus, die in Benutzerdaten gefunden wurden.

  • Mounten von Instance-Speicher-Volumes, falls zutreffend.

    • Standardmäßig wird das Instance-Speicher-Volume ephemeral0 unter /media/ephemeral0 gemountet – wenn es vorhanden ist und ein gültiges Dateisystem enthält; andernfalls wird es nicht gemountet.

    • Standardmäßig werden alle Swap-Volumes gemountet, die der Instance zugeordnet sind (gilt nur für die Instance-Typen m1.small und c1.medium).

    • Sie können den Standard-Einhängepunkt für ein Instance-Speicher-Volume mithilfe der folgenden cloud-init-Anweisung überschreiben:

      #cloud-config mounts: - [ ephemeral0 ]

      Weitere Informationen zum Steuern von Mountvorgängen finden Sie unter Mounts in der cloud-init-Dokumentation.

    • Instance-Speicher-Volumes mit TRIM-Unterstützung werden beim Start einer Instance nicht formatiert, d. h. Sie müssen Sie partitionieren und formatieren, bevor Sie sie mounten können. Weitere Informationen finden Sie unter TRIMUnterstützung für Instance Store Volume. Sie können das disk_setup-Modul verwenden, um Instance-Speicher-Volumes während des Bootvorgangs zu partitionieren und zu formatieren. Weitere Informationen finden Sie unter Disk Setup in der cloud-init-Dokumentation.

Unterstützte Benutzerdatenformate

Das Cloud-Init-Paket unterstützt die Verarbeitung von Benutzerdaten in einer Vielzahl von Formaten:

  • Gzip

    • Wenn Benutzerdaten gzip-komprimiert sind, dekomprimiert Cloud-Init die Daten und verarbeitet sie entsprechend.

  • MIME, mehrteilig

    • Wenn Sie eine mehrteilige MIME-Datei verwenden, können Sie mehrere Datentypen angeben. Sie könnten beispielsweise sowohl ein Benutzerdatenskript als auch einen Cloud-Konfigurationstyp angeben. Jeder Teil der mehrteiligen Datei kann von cloud-init entsprechend verarbeitet werden, wenn es sich um ein unterstütztes Format handelt.

  • Base64-Decodierung

    • Wenn Benutzerdaten Base64-codiert sind, bestimmt cloud-init, ob es die dekodierten Daten als einen der unterstützten Typen verstehen kann. Wenn die decodierten Daten lesbar sind, werden die Daten von vollständig decodiert und weiter verarbeitet. Wenn sie nicht lesbar sind, werden die Base64-Daten unverändert zurückgegeben.

  • Benutzerdatenskript

    • Beginnt mit #! oder Content-Type: text/x-shellscript

    • Das Skript wird beim ersten Systemstartzyklus von /etc/init.d/cloud-init-user-scripts ausgeführt. Dies geschieht relativ spät während des Bootvorgangs (nachdem die Aktionen für die Ausgangskonfiguration durchgeführt wurden).

  • Include-Datei

    • Beginnt mit #include oder Content-Type: text/x-include-url

    • Dabei handelt es sich um eine Datei mit einzuschließenden Inhalten. Die Datei enthält eine Liste von, eine pro Zeile. URLs Jeder von ihnen URLs wird gelesen, und ihr Inhalt durchläuft dasselbe Regelwerk. Der aus der URL gelesene Inhalt kann gzip-komprimiert oder Klartext sein. MIME-multi-part

  • Cloud-Konfigurationsdaten

    • Beginnt mit #cloud-config oder Content-Type: text/cloud-config

    • Bei diesem Inhalt handelt es sich um Cloud-Konfigurationsdaten.

  • Upstart-Job (wird nicht unterstützt auf AL2)

    • Beginnt mit #upstart-job oder Content-Type: text/upstart-job

    • Dieser Inhalt wird in einer Datei in gespeichert/etc/init, und Upstart verwendet den Inhalt wie andere Upstart-Jobs.

  • Cloud-Boothook

    • Beginnt mit #cloud-boothook oder Content-Type: text/cloud-boothook

    • Dabei handelt es sich um Boothook-Daten. Sie werden in einer Datei unter /var/lib/cloud gespeichert und unmittelbar danach ausgeführt.

    • Das ist der am frühesten verfügbare Hook. Es gibt keinen Mechanismus, der garantiert, dass dieser nur ein Mal ausgeführt wird. Der Boothook muss selbst dafür sorgen. Er wird mit der Instance-ID in der Umgebungsvariablen INSTANCE_ID bereitgestellt. Verwenden Sie diese Variable, um einen once-per-instance Satz von Boothook-Daten bereitzustellen.