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