Cloud-init ist ein Softwarepaket, das die Initialisierung von Servern während des Systemstarts automatisiert. Wenn Sie einen neuen Linux-Server aus einem Image bereitstellen, bietet cloud-init Ihnen die Möglichkeit, Standard-Benutzerdaten festzulegen. Die Benutzerdaten müssen in Shell-Skripten oder cloud-config-Direktiven mit YAML-Syntax geschrieben werden.
Diese Methode ist plattformübergreifend hochkompatibel und absolut sicher. Kompatibilität: Dieser Service wird auf allen öffentlichen centron ccloud Linux-Distributionen (Debian, CentOS und Ubuntu) unterstützt. Sie können Benutzerdaten über das ccenter oder über die ccloud API übermitteln. Bestehende Cloud-Init-Konfigurationen von anderen Anbietern sind mit centron ccloud kompatibel.
Cloud-init ist auf allen öffentlichen Images verfügbar, die von centron ccloud bereitgestellt werden. Wenn Sie Ihr eigenes Linux-Image verwenden möchten, vergewissern Sie sich bitte zuerst, dass es Cloud-init unterstützt. Andernfalls gibt es keine Garantie, dass das Paket wie vorgesehen funktioniert. Windows-Images werden derzeit nicht unterstützt; ihre Aufnahme kann zu einem späteren Zeitpunkt in Betracht gezogen werden.
Cloud-init kann nur bei der Erstbereitstellung festgelegt werden. Sie kann nicht auf Instanzen angewendet werden, die bereits bereitgestellt wurden. Die Einstellungen können nach der Bereitstellung nicht mehr geändert werden.
Dieses Tutorial demonstriert die Verwendung der Skripte cloud-config und user-data. Das cloud-init-Paket unterstützt jedoch eine Vielzahl von Formaten.
Shell Skripte sind der einfachste Weg, einen Server zu bootstrappen. Das folgende Beispiel konfiguriert einen CentOS Webserver:
Lassen Sie der Instanz genügend Zeit, um zu starten und die Befehle in Ihrem Skript auszuführen, und überprüfen Sie dann, ob Ihr Skript die von Ihnen beabsichtigten Aufgaben erfüllt hat. Im obigen Beispiel wird ein Webserver installiert und die Standarddatei index.html neu geschrieben.
Um zu testen, ob cloud-init Ihre VM erfolgreich gebootet hat, können Sie die entsprechende IP-Adresse in Ihrem Browser öffnen. Sie sollten mit einer "Hello World"-Nachricht von Ihrem Webserver begrüßt werden.
Cloud-init-Images können auch mit cloud-config-Direktiven gebootet werden. Auf der cloud-init-Website werden alle unterstützten Module beschrieben und Beispiele für grundlegende Direktiven gegeben.
Beispiele
Beispiel 1: Swap Partition
Das folgende Code Schnipsel erläutert, wie eine eine Swap Partition mittels YAML Skript erstellt werden kann:
Beispiel 2: Größe des Filesystems ändern
Das folgende Skript beschreibt, wie mittels eines YAML Skripts Ihr File System angepasst werden kann:
Die Cloud-Init-Ausgabeprotokolldatei (/var/log/cloud-init-output.log) zeichnet die Konsolenausgaben auf. Je nach der Standardkonfiguration für die Protokollierung existiert eine zweite Protokolldatei unter /var/log/cloud-init.log..... . Dies bietet eine umfassende Aufzeichnung auf der Grundlage von Benutzerdaten.
Format | Beschreibung |
---|---|
Base64
Wenn die Benutzerdaten base64-kodiert sind, stellt cloud-init fest, ob es die dekodierten Daten als einen der unterstützten Typen verstehen kann. Wenn es die dekodierten Daten versteht, dekodiert es die Daten und behandelt sie entsprechend. Wenn nicht, werden die base64-Daten unverändert zurückgegeben.
User-Data Script
Beginnt mit #!
oder Content-Type: text/x-shellscript
. Das Skript wird von /etc/init.d/cloud-init-user-scripts während des ersten Bootvorgangs ausgeführt. Dies geschieht am Ende des Bootvorgangs (nachdem die ersten Konfigurationsmaßnahmen durchgeführt wurden).
Include File
Beginnt mit #include
oder Content-Type: text/x-include-url
. Die Datei enthält eine Liste von URLs, eine pro Zeile. Jede der URLs wird gelesen, und ihr Inhalt wird durch denselben Satz von Regeln geleitet. Der aus der URL gelesene Inhalt kann MIME-multi-part oder Klartext sein.
Cloud Config data
Beginnt mir #cloud-config
oder Content-Type: text/cloud-config
. Ein kommentiertes Beispiel für die unterstützten Konfigurationsformate finden Sie in den Beispielen.
Upstart Job
Beginnt mit #upstart-job
oder Content-Type: text/upstart-job
.
Der Inhalt wird in/etc/init
gespeichert und upstart konsumiert den Inhalt wie bei anderen upstart-Aufträgen.
Cloud Boothook
Beginnt mit #cloud-boothook
oder Content-Type: text/cloud-boothook
.
Dieser Inhalt ist eine boothook
Datei. Er befindet sich unter /var/lib/cloud
und startet sofort. Dies ist die früheste verfügbare Hook. Es ist kein Mechanismus vorgesehen, um ihn nur einmal auszuführen. Der Boothook muss sich selbst darum kümmern. Er wird mit der Instanz-ID in der Umgebungsvariablen INSTANCE_ID bereitgestellt. Verwenden Sie diese Variable, um einen einmaligen boothook-Datensatz pro Instanz bereitzustellen