Freigeben über


cloud-init

CycleCloud unterstützt cloud-init als Möglichkeit, einen virtuellen Computer (VM) beim ersten Start zu konfigurieren , bevor eine andere CycleCloud-spezifische Konfiguration auf dem virtuellen Computer auftritt. Die Verwendung von Cloud-Init ist eine effektive Möglichkeit zum Konfigurieren von Aspekten einer VM (z. B. Netzwerk, Yum/apt-Spiegel und mehr) vor der Installation von Software, die von CycleCloud (HPC-Schedulern) verwaltet wird.

Das folgende Beispiel zeigt, wie Sie mithilfe des CloudInit Attributs in einer Clustervorlage ein Bash-Skript angeben, das beim Start ausgeführt werden soll:

[node scheduler]
CloudInit = '''#!/bin/bash
echo "cloud-init works" > /tmp/cloud-init.txt
'''

Hinweis

Verwenden Sie dreifach zitierte Zeichenfolgen in einer Clustervorlage, um eine mehrzeilige Zeichenfolge anzugeben, z. B. ein Bash- oder YAML-Skript.

Warnung

Nicht alle Betriebssystem-Images in Azure unterstützen cloud-init. Weitere Informationen dazu, welche Images cloud-init unterstützen und wie der Zeitplan für eine breitere Unterstützung aussieht, finden Sie unter Cloud-init-Unterstützung für virtuelle Computer in Azure.

Einrichten von Cloud-Init mithilfe der Benutzeroberfläche

Die CycleCloud-Benutzeroberfläche unterstützt die Cloud-Init-Bearbeitung. Wenn Sie einen beliebigen Cluster erstellen oder bearbeiten, können Sie die Registerkarte "Cloud-Init " verwenden, um das Cloud-Init-Skript für jeden Knoten in Ihrem Cluster zu bearbeiten. Der Editor in der CycleCloud-Benutzeroberfläche akzeptiert jede Texteingabe. Es bietet Syntaxhervorhebung für Python, Shellskripte und YAML.

Bearbeiten von Cloud-Init in der CycleCloud-Benutzeroberfläche

Cloud-init Reihenfolge und Fehlerbehandlung

Für CycleCloud-Knoten mit CloudInit angegebener Angabe stellt CycleCloud die VM bereit und wartet, bis cloud-init abgeschlossen wird, bevor sie eine andere Konfiguration startet. Wenn Sie für den Knoten angeben CloudInit , aber CycleCloud die Cloud-Init-Unterstützung für das Betriebssystem nicht erkennt, wechselt der Knoten in einen Fehlerzustand und leitet den Grund an CycleCloud weiter. Wenn das CloudInit Skript nicht ausgeführt werden kann (z. B. aufgrund eines Skriptingfehlers oder Eines Syntaxfehlers), wechselt der Knoten in einen Fehlerzustand und leitet den von cloudinit an CycleCloud gemeldeten Fehler weiter.

Sobald cloud-init ohne Fehler abgeschlossen wird, konfiguriert CycleCloud die VM weiterhin wie gewohnt.

Von Bedeutung

CycleCloud führt cloudinit-Skripts nicht automatisch zusammen. Wenn Sie ein Cloud-Init-Skript im [node defaults] angeben und einen Knoten haben, der von diesen Standardwerten erbt, wird das Cloud-Init-Skript im [node defaults] überschrieben. Um Code zu teilen, empfehlen wir das manuelle Zusammenführen von Skripts. Alternativ dazu können Sie ein Include-Dateiformat für Benutzerdaten verwenden, um eine Liste von URLs zur Verarbeitung durch Cloud-Init einzubinden.