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 erfolgt. Die Verwendung von cloud-init ist eine effektive Möglichkeit, Aspekte eines virtuellen Computers (z. B. Netzwerk, yum/apt-Spiegel usw.) zu konfigurieren, bevor von CycleCloud (HPC-Scheduler) verwaltete Software installiert wird.
Im Folgenden finden Sie ein einfaches Beispiel für die Angabe eines Bash-Skripts, das beim Start mithilfe des CloudInit
-Attributs in einer Clustervorlage ausgeführt werden soll:
[node scheduler]
CloudInit = '''#!/bin/bash
echo "cloud-init works" > /tmp/cloud-init.txt
'''
Hinweis
Zeichenfolgen mit dreifacher Anführungszeichen können in einer Clustervorlage verwendet werden, um eine mehrzeile Zeichenfolge anzugeben, z. B. ein Bash- oder YAML-Skript.
Warnung
Nicht alle Betriebssystemimages in Azure-Support cloud-init. Weitere Informationen dazu, welche Images cloud-init unterstützen, finden Sie unter cloud-init-Unterstützung für virtuelle Computer in Azure und die Zeitleiste, wann eine umfassendere Unterstützung verfügbar ist.
Festlegen Cloud-Init über die Benutzeroberfläche
Die CycleCloud-Benutzeroberfläche unterstützt die Cloud-Init-Bearbeitung. Beim Erstellen oder Bearbeiten eines Clusters können Sie auf einer neuen Registerkarte namens "Cloud-Init" das Skript cloud-init für jeden Knoten in Ihrem Cluster bearbeiten. Der Editor auf der CycleCloud-Benutzeroberfläche lässt jede Texteingabe zu. Die Syntaxherhebung ist für Python, Shellskripts oder YAML aktiviert.
Cloud-Init Reihenfolge und Fehlerbehandlung
Für CycleCloud-Knoten mit CloudInit
angegebenem Wert stellt CycleCloud die VM bereit und wartet, bis cloud-init abgeschlossen wurde, bevor eine andere Konfiguration erfolgt. Wenn CloudInit
auf dem Knoten angegeben ist und CycleCloud keine cloud-init-Unterstützung für das Betriebssystem erkennt, wechselt der Knoten in einen Fehlerzustand, und der Grund wird an CycleCloud weitergeleitet. Wenn das CloudInit
Skript nicht ausgeführt werden kann (z. B. aufgrund eines Skript- oder Syntaxfehlers), wechselt der Knoten in einen Fehlerzustand, und der von cloud-init gemeldete Fehler wird an CycleCloud weitergeleitet.
Nachdem cloud-init ohne Fehler bis zum Abschluss ausgeführt wurde, konfiguriert CycleCloud den virtuellen Computer wie gewohnt.
Wichtig
CycleCloud führt cloud-init-Skripts nicht automatisch zusammen. Wenn ein [node defaults]
einen cloud-init sowie einen Knoten angibt, der von den Standardwerten erbt, wird das cloud-init-Skript in [node defaults]
überschrieben. Das manuelle Zusammenführen von Skripts wird empfohlen, wenn Code freigegeben werden muss. Alternativ kann ein Includedatei-Benutzerdatenformat verwendet werden, um eine Liste von URLs einzuschließen, die von cloud-init verarbeitet werden sollen.