全部產品
Search
文件中心

Elastic Compute Service:執行個體初始化工具介紹

更新時間:Dec 20, 2024

ECS執行個體建立過程中,預設通過初始化工具自動執行一些預定義的配置任務,例如網路設定、主機名稱設定以及自訂指令碼的執行等。不同類型的作業系統使用的初始化工具會有所不同,對於Linux執行個體,由cloud-init工具負責完成自動初始化,而Windows執行個體則由Vminit工具進行自動初始化。本文將介紹Linux執行個體和Windows執行個體的初始化工具。

cloud-init工具介紹

Linux執行個體通過開源工具cloud-init來完成自動初始化執行個體。更多資訊,請參見cloud-init官方文檔

  • 在cloud-init中,定義了一系列的模組(Modules)來完成需要執行的任務和配置。每個模組都有名稱、運行頻率、配置參數這三大要素,其中運行頻率表示該模組該在什麼時候運行,通常有兩種運行頻率:once-per-instance表示僅在執行個體初次開機時運行;always表示執行個體每次啟動時都會運行。更多資訊,請參見Module reference

  • cloud-init通過設定檔/etc/cloud/cloud.cfg控制執行個體的初始化行為,例如運行哪些模組。在運行模組時,cloud-init可以從中繼資料服務中擷取執行個體的執行個體ID、主機名稱等中繼資料資訊。以Set Hostname模組為例,執行個體啟動時,cloud-init會讀取中繼資料的主機名稱資訊,並將其設定為執行個體的主機名稱。

說明

阿里雲所有公用鏡像以及基於公用鏡像建立的自訂鏡像已預設安裝cloud-init,通過公用鏡像建立ECS執行個體會自動運行cloud-init,無需再手動安裝。如果您是通過本地製作的自訂鏡像建立ECS執行個體,且鏡像未安裝cloud-init,需要手動安裝cloud-init,具體操作,請參見安裝cloud-init

Vminit工具介紹

Windows執行個體通過Vminit初始化工具完成自動初始化,該工具本質上是通過順序執行一系列外掛程式來完成系統的初始化配置。其中,部分外掛程式僅在執行個體首次建立並啟動時執行一次,而某些外掛程式則在每次執行個體啟動時均會執行。在使用Windows鏡像建立執行個體的過程中,將預設自動執行Vminit所有外掛程式的初始化功能。

說明

2023年09月份及之後的Windows公用鏡像以及基於公用鏡像建立的自訂鏡像已預設安裝Vminit,通過公用鏡像建立ECS執行個體會自動運行Vminit,無需再手動安裝。如果您是通過本地製作的自訂鏡像建立ECS執行個體,且鏡像未安裝Vminit,需要手動安裝Vminit,保證運行該鏡像的ECS執行個體能成功完成初始化配置。具體操作,請參見安裝Vminit

目前,Vminit包含10個外掛程式,具體說明見下表。

說明

下述外掛程式列表適用於2023年09月份及其之後發布的Windows公用鏡像,以及基於該公用鏡像建立的自訂鏡像所啟動並執行執行個體。如果鏡像不符合上述條件,則該鏡像中的Vminit外掛程式可能與以下列表存在差異。

外掛程式列表

外掛程式名稱

執行頻率

外掛程式功能

說明

Plugin_Main_StartDepend

僅在執行個體初次開機時執行。

啟動Windows作業系統的IP Helper服務、DHCP用戶端和Windows時間服務(W32Time) 。

Windows鏡像預設開啟這些系統服務,但是您可能在自訂鏡像中禁用了這些服務,該外掛程式會開啟這些服務,避免因禁用系統服務導致網路和NTP設定異常。

Plugin_Main_OpenRDP

允許通過遠端桌面連線服務RDP串連執行個體。

Windows系統預設開啟RDP服務,對于禁用RDP服務的鏡像,該外掛程式會開啟RDP。

Plugin_Main_NetworkClean

初始化網路設定,系統會使用DHCP方式自動擷取執行個體中所有網卡的IP地址和DNS伺服器設定。

如果執行個體中的IP Helper和DHCP服務未正確開啟,可能導致該外掛程式執行失敗,從而無法通過內網訪問執行個體中繼資料。

Plugin_Main_ConfigDisk

將隨執行個體建立的資料盤進行初始化,包括建立分區、分配盤符等,且分區格式預設為GPT。

  • 在執行個體建立過程中,如果同時添加了新的資料盤,資料盤是未初始化的。為提高您的便利,本外掛程式會自動對資料盤進行初始化並設定為聯機狀態。

  • 在執行個體建立過程中,如果添加的是帶有資料的資料盤,Vminit不會對其進行初始化。

Plugin_Main_ExtendVolume

自動檢測Windows系統硬碟的空閑空間,並利用diskpart命令來擴充系統硬碟。

無。

Plugin_Main_CloudinitUserData

該外掛程式會從阿里雲的中繼資料中擷取您配置的自訂資料,並使用系統的system賬戶執行自訂資料指令碼。

Plugin_Main_ConfigHostname

執行個體每次啟動時都會執行。

設定執行個體的主機名稱。在執行個體建立階段,阿里雲會為每個執行個體分配一個主機名稱。如果您在建立執行個體時指定了主機名稱,系統將根據您設定的主機名稱進行配置。否則,阿里雲將自動分配一個隨機的主機名稱。

  • 設定主機名稱會強制重啟系統,重啟系統會在該外掛程式執行完畢後立即執行。

  • 如果執行個體的主機名稱與您配置的主機名稱一致,則不會重複設定主機名稱。

  • 如果您本身不依賴阿里雲修改主機名稱,而是由您自訂設定執行個體的主機名稱,可以禁用該外掛程式。例如,您在自訂鏡像中增加了開機啟動修改主機名稱的邏輯,這可能與Vminit這個外掛程式的邏輯衝突,這種情況下,建議在建立自訂鏡像時,禁用該外掛程式。具體操作,請參見配置Vminit

Plugin_Main_ConfigWsus

該外掛程式會從阿里雲的中繼資料中擷取WSUS地址,並配置到執行個體中。如果執行個體的WSUS地址已經配置成阿里雲的WSUS地址,則不會重複配置。

該外掛程式依賴內網訪問能力。

Plugin_Main_ConfigKms

該外掛程式會從阿里雲的中繼資料中擷取KMS地址,配置到執行個體後會進行KMS啟用。如果執行個體KMS已經啟用且KMS相同,則不會重複配置。

該外掛程式依賴內網訪問能力。

Plugin_Main_ConfigNtp

配置NTP時鐘源,用於時間同步。該外掛程式會從阿里雲的中繼資料中擷取NTP伺服器位址,並配置到執行個體中。如果執行個體已經配置了相同的NTP地址,則不會重複配置。

  • 該外掛程式依賴內網訪問能力。

  • 該外掛程式依賴W32Time服務。

版本發布記錄

Vminit會不定期發布版本更新,以下為Vminit的版本發布資訊。

Vminit版本

發布內容

發布日期

2.0.1.2

  • 清除Windows事件管理器中的報錯警示。

  • Userdata的Bat指令碼支援延遲變數。

2024年01月

2.0.1.0

首次發布,支援外掛程式化可配置。

2023年09月

相關文檔

您可以在建立執行個體時選擇使用自訂資料來初始化該執行個體。具體操作,請參見自訂執行個體初始化配置

關於製作鏡像時如何安裝及使用初始化工具,請參見安裝cloud-init安裝Vminit