共用方式為


Azure Linux VM 佈建

適用於:✔️ Linux VM ✔️ 彈性擴展集

從一般化映像 (Azure Compute Gallery 或受控映像) 建立 VM 時,控制平面可讓您建立 VM,並將參數和設定傳遞至 VM。 這稱為 VM「佈建」。 在佈建期間,平台會在虛擬機器啟動時,讓必要的 VM Create 參數值 (主機名稱、使用者名稱、密碼、SSH 金鑰、customData) 可供 VM 使用。

內建在映像內的佈建代理程式會與平台連接,連線到多個獨立的佈建介面,將屬性和訊號設定至已完成的平台。

佈建代理程式可以是 Azure Linux 代理程式cloud-init。 這些是建立一般化映像的必要條件

佈建代理程式會為所有經過背書的 Azure Linux 散發套件提供支援,而且在許多情況下,您會發現經過背書的散發版本映像會隨附於 cloud-init 和 Linux 代理程式。 這可讓您選擇讓 cloud-init 處理佈建,然後 Linux 代理程式將提供處理 Azure 擴充功能的支援。 提供擴充功能的支援表示 VM 接著有資格支援其他 Azure 服務,例如 VM 密碼重設、Azure 監視、Azure 備份、Azure 磁碟加密等。

佈建完成之後,就會在每次開機時執行 cloud-init。 cloud-init 會監視 VM 的變更,例如網路變更、掛接和格式化暫時磁碟,以及啟動 Linux 代理程式。 Linux 代理程式會持續在伺服器上執行,並從 Azure 平台尋找「目標狀態」(新的設定),因此每當您安裝擴充功能時,代理程式就能夠進行處理。

雖然目前有兩個佈建代理程式,但是您應該選擇 cloud-init 作為佈建代理程式,應該安裝 Linux 代理程式以提供擴充功能支援。 這可讓您充分利用平台最佳化,並且可讓您停用/移除 Linux 代理程式,如需有關如何在沒有代理程式的情況下建立映像,以及如何移除的詳細資訊,請參閱這份文件

如果您有無法支援執行任一代理程式的 Linux 核心,但是想要設定一些 VM Create 屬性 (例如 hostname、customData、userName、password、ssh 金鑰),本文件中會討論如何在沒有代理程式的情況下建立一般化映像,並且符合平台需求。

佈建代理程式責任

映像佈建

  • 建立使用者帳戶
  • 設定 SSH 驗證類型
  • 部署 SSH 公開金鑰和金鑰組
  • 設定主機名稱
  • 將主機名稱發佈至平台 DNS
  • 將 SSH 主機金鑰和指紋報告給平台
  • 資源磁碟管理
  • 格式化和掛接資源磁碟
  • 使用和處理 customData

網路功能

  • 管理路由以提高平台 DHCP 伺服器的相容性
  • 確保網路介面名稱的穩定性

核心

  • 設定虛擬 NUMA (對核心停用 <2.6.37)
  • 針對 /dev/random 使用 Hyper-V 熵
  • 設定根裝置 (可能在遠端) 的 SCSI 逾時

診斷

  • 將主控台重新導向至序列埠

通訊

資訊經由兩個管道從平台流向代理程式:

  • 在 IaaS 部署中,開機時連接的 DVD。 DVD 包含 OVF 相容組態檔,內含實際 SSH 金鑰組以外的所有佈建資訊。
  • TCP 端點,公開可用來取得部署和拓撲組態的 REST API。

Azure 佈建代理程式需求

Linux 代理程式和 cloud-init 需要一些系統套件才能正確運作:

  • Python 2.6+
  • OpenSSL 1.0+
  • OpenSSH 5.3+
  • 檔案系統公用程式:sfdiskfdiskmkfsparted
  • 密碼工具:chpasswd、sudo
  • 文字處理工具:sed、grep
  • 網路工具:ip-route
  • 掛接 UDF 檔案系統的核心支援。

下一步

如有需要,您可以停用佈建並且移除 Linux 代理程式