CycleCloud は、最初の起動時に仮想マシン (VM) を構成する方法として cloud-init をサポートしており、他の CycleCloud 固有の構成がその VM に対して行われる前に実行されます。 Cloud-init を使用することは、CycleCloud (HPC スケジューラ) によって管理されるソフトウェアをインストールする前に、VM の側面 (ネットワーク、yum/apt ミラーなど) を構成するための効果的な方法です。
次の例では、クラスター テンプレートの CloudInit
属性を使用して、起動時に実行する bash スクリプトを指定する方法を示します。
[node scheduler]
CloudInit = '''#!/bin/bash
echo "cloud-init works" > /tmp/cloud-init.txt
'''
注
クラスター テンプレートで三重引用符で囲まれた文字列を使用して、bash や YAML スクリプトなどの複数行の文字列を指定します。
Warnung
Azure のすべての OS イメージが cloud-init をサポートしているわけではありません。 cloud-init をサポートするイメージと、より広範なサポートのタイムラインの詳細については、 Azure での仮想マシンに対する cloud-init のサポートに関するページを参照してください。
UI を使用して cloud-init を設定する
CycleCloud UI では、cloud-init 編集がサポートされています。 クラスターを作成または編集するときに、[ Cloud-Init ] タブを使用して、クラスター内の各ノードの cloud-init スクリプトを編集できます。 CycleCloud UI のエディターは、任意のテキスト入力を受け入れます。 Python、シェル スクリプト、または YAML の構文の強調表示を提供します。
Cloud-init の順序付けとエラー処理
CloudInit
が指定された CycleCloud ノードの場合、CycleCloud は VM をプロビジョニングし、cloud-init が実行されて完了するまで待機してから、他の構成を開始します。 ノードで CloudInit
を指定しても、CycleCloud が OS の cloud-init サポートを検出しない場合、ノードはエラー状態になり、その理由が CycleCloud に中継されます。 CloudInit
スクリプトの実行に失敗した場合 (スクリプトエラーや構文エラーなど)、ノードはエラー状態になり、cloud-init によって報告されたエラーが CycleCloud に中継されます。
cloud-init が実行され、エラーなしで完了すると、CycleCloud は通常どおり VM を構成し続けます。
Von Bedeutung
CycleCloud は cloud-init スクリプトを自動的にマージしません。 [node defaults]
で cloud-init スクリプトを指定し、それらの既定値から継承するノードがある場合、[node defaults]
の cloud-init スクリプトは上書きされます。 コードを共有するには、スクリプトを手動でマージすることをお勧めします。 または、 インクルード ファイルのユーザー データ形式 を使用して、cloud-init で処理する URL の一覧を含めることもできます。