Cloud-Init
CycleCloud 支援 cloud-init ,做為在 VM 上發生任何其他 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 腳本。
警告
Azure 支援 cloud-init 中並非所有 OS 映射。 請參閱 Azure 中虛擬機器的 cloud-init 支援 ,以取得哪些映射支援 cloud-init 的詳細資料,以及可取得更廣泛支援的時間軸。
使用 UI 設定 Cloud-Init
CycleCloud UI 支援 cloud-init 編輯。 建立或編輯任何叢集時,名為 「Cloud-Init」 的新索引標籤可讓您編輯叢集中每個節點的 cloud-init 腳本。 CycleCloud UI 中的編輯器將允許任何文字輸入。 Python、Shell 腳本或 YAML 已啟用語法醒目提示。
Cloud-Init 排序和錯誤處理
對於指定的 CloudInit
CycleCloud 節點,CycleCloud 會布建 VM,並等到 cloud-init 執行完成, 再 進行任何其他設定。 如果在 CloudInit
節點上指定 ,且 CycleCloud 不會偵測 OS 的 cloud-init 支援,節點將會進入錯誤狀態,並將原因轉送至 CycleCloud。
CloudInit
如果腳本無法執行 (例如,因為腳本錯誤或語法錯誤) ,節點會進入錯誤狀態,而 cloud-init 回報的錯誤將會轉送至 CycleCloud。
一旦 cloud-init 執行到完成,且沒有任何錯誤,CycleCloud 會繼續如往常設定 VM。
重要
CycleCloud 不會 自動合併 cloud-init 腳本。
[node defaults]
如果 指定 cloud-init 以及繼承自預設值的節點,則會覆寫 中的 [node defaults]
cloud-init 腳本。 需要共用程式碼時,建議手動合併腳本。 或者, include 檔案使用者資料格式 可用來包含要由 cloud-init 處理的 URL 清單。