Azure VM Image Builder 概觀

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

藉由使用標準化的虛擬機器 (VM) 映像,您的組織可以更輕鬆地移轉至雲端,並協助確保部署中的一致性。 映像通常包含預先定義的安全性、組態設定,以及任何必要的軟體。 安裝屬於您的映像管線需要時間、基礎結構和許多其他詳細資料。 藉由使用 Azure VM Image Builder,您只需要建立描述映像的設定,並將其提交至組建映像的服務後散發即可。

使用 VM Image Builder,您可以將現有的映像自訂管線移轉至 Azure,同時繼續使用現有的指令碼、命令和流程。 您可以將核心應用程式整合至 VM 映像中,讓 VM 可以在建立映像後接受工作負載。 您甚至可以新增設定來為 Azure 虛擬桌面組建映像,作為用於 Azure Stack 的虛擬硬碟 (VHD),或更輕鬆地輸出。

VM Image Builder 可讓您從來自 Azure Marketplace 或現有的自訂 Windows或 Linux 映像著手,然後新增屬於您的自訂項目。 您也可以在 Azure Compute Gallery (過去稱為共用映像庫) 中,指定您所產生映像要裝載的位置,作為受控映像或 VHD。

功能

雖然您可以藉由手動或以其他工具建立自訂 VM 映像,但整個流程可能相當繁瑣且不可靠。 組建在 HashiCorp Packer 上的 VM Image Builder 則提供了受控服務特有的優點。

簡單

為了減少建立 VM 映像的複雜性,VM Image Builder:

  • 免除使用複雜工具、流程和手動步驟建立 VM 映像的必要性。 VM Image Builder 會將這些詳細資料全部抽象化,並隱藏 Azure 特定需求,例如將映像一般化 (Sysprep) 的需求。 並且能讓更進階的使用者覆寫這類需求。

  • 可以與現有的映像組建管線整合,達成隨選即用的體驗。 若要這樣做,您可以從管線呼叫 VM Image Builder,或使用 Azure VM Image Builder 服務 DevOps 工作 (預覽)

  • 可以從各種來源擷取自訂資料,便無須從單一位置收集自訂資料。

  • 可與計算資源庫整合,其會建立映像管理系統,能藉此全域散發、複寫、版本和調整映像。 此外,您可以將相同的產生映像作為 VHD,或是作為一個或多個受控映像散發,而無須從頭重建。

基礎結構即程式碼

使用 VM Image Builder 時,不需要管理長期基礎結構 (例如保留自訂資料的儲存體帳戶) 或暫時性基礎結構 (例如用於組建映像的暫存 VM)。

VM Image Builder 會將 VM 映像組建成品儲存為 Azure 資源。 這項功能可以免除維護離線定義的需求,以及意外刪除或更新所導致的環境漂移風險。

安全性

為了協助保護您的映像安全,VM Image Builder:

  • 可讓您建立基準映像 (即最低安全性和公司設定),並允許其他部門進一步加以自訂。 您可以使用 VM Image Builder,以最新的已修補來源映像版本快速重建黃金映像,協助這些映像保持安全並符合規範。 VM Image Builder 也可讓您更輕鬆地組建出符合 Azure Windows 安全性基準的映像。 如需詳細資訊,請參閱 VM Image Builder - Windows 基準範本

  • 可讓您擷取自訂成品,而無須將其公開存取。 VM Image Builder 可以使用您的 Azure 受控識別來擷取這些資源,而且您也能使用 Azure 角色型存取控制 (Azure-RBAC) 盡可能嚴格地限制此身分識別的使用權限。 您可以將成品保密,同時避免遭未經授權的執行者竄改。

  • 由於 Azure-RBAC 管理存取控制,自訂成品、暫時性計算與儲存體資源,以及其所產生的映像都會安全地儲存在您的訂用帳戶中。 此層級的安全性也適用於用來建立自訂映像的組建 VM,有助於避免自訂指令碼和檔案遭複製到未知訂用帳戶中的未知 VM。 而且,您可以使用組建 VM 的隔離式 VM 供應項目,將來自其他客戶的工作負載高度隔離。

  • 可讓您將 VM Image Builder 連線至現有的虛擬網路,以便與現有的設定伺服器通訊,例如 DSC (所需的狀態設定提取伺服器)、Chef 和 Puppet、檔案共用或任何其他可路由的伺服器和服務。

  • 可以設定為將使用者指派的身分識別指派至 VM Image Builder 組建 VM (即由訂用帳戶中的 VM Image Builder 服務所建立,並用於組建和自訂映像的 VM)。 您可以接著在自訂時間時,使用這些身分識別來存取訂閱中的 Azure 資源,包括秘密。 無須向 VM Image Builder 指派這些資源的直接存取權。

地區

VM Image Builder 服務可在下列區域中使用:

注意

您仍然可以在這些區域以外散發映像。

  • 美國東部
  • 美國東部 2
  • 美國中西部
  • 美國西部
  • 美國西部 2
  • 美國西部 3
  • 美國中南部
  • 北歐
  • 西歐
  • 東南亞
  • 澳大利亞東南部
  • 澳大利亞東部
  • 英國南部
  • 英國西部
  • 巴西南部
  • 加拿大中部
  • 印度中部
  • 美國中部
  • 法國中部
  • 德國中西部
  • 日本東部
  • 美國中北部
  • 挪威東部
  • 瑞士北部
  • Jio 印度西部
  • 阿拉伯聯合大公國北部
  • 東亞
  • 南韓中部
  • 南非北部
  • 卡達中部
  • US Gov 亞利桑那州 (公開預覽版)
  • US Gov 維吉尼亞州 (公開預覽版)
  • 中國北部 3 (公開預覽版)
  • 瑞典中部
  • 波蘭中部
  • 義大利北部

為了存取 Fairfax 區域 (US Gov 亞利桑那州和 US Gov 維吉尼亞州) 中的 Azure VM Image Builder 公開預覽版,您必須註冊 Microsoft.VirtualMachineImages/FairfaxPublicPreview 功能。 若要這樣做,請在 PowerShell 或 Azure CLI 中執行下列命令:

Register-AzProviderPreviewFeature -ProviderNamespace Microsoft.VirtualMachineImages -Name FairfaxPublicPreview

為了存取中國北部 3 區域中的 Azure VM Image Builder 公開預覽版,您必須註冊 Microsoft.VirtualMachineImages/MooncakePublicPreview 功能。 若要這樣做,請在 PowerShell 或 Azure CLI 中執行下列命令:

Register-AzProviderPreviewFeature -ProviderNamespace Microsoft.VirtualMachineImages -Name MooncakePublicPreview

OS 支援

VM Image Builder 專為與所有 Azure Marketplace 基礎作業系統映像搭配使用而設計。

注意

從 2023 年 3 月起,您可以在入口網站內使用 Azure Image Builder 服務。 開始 在入口網站內組建及驗證自訂映像。

機密 VM 和可信啟動支援

VM Image Builder 已對 TrustedLaunchSupported 和 ConfidentialVMSupported 映像延伸支援,並具有特定限制式。 以下是限制式的清單:

SecurityType 支援狀態
TrustedLaunchSupported 支援作為映像組建的來源映像
ConfidentialVMSupported 支援作為映像組建的來源映像
TrustedLaunch 不支援作為來源映像
ConfidentialVM 不支援作為來源映像

注意

使用 TrustedLaunchSupported 映像時,重要的一點是來源和散發必須同時為 TrustedLaunchSupported 才能支援。 如果來源正常而散發為 TrustedLaunchSupported,或來源為 TrustedLaunchSupported 而散發為一般 Gen2,則不支援。

運作方式

VM Image Builder 是完全受控的 Azure 服務,可供 Azure 資源提供者存取。 資源提供者可藉由指定來源映像、要執行的自訂,以及要散發新映像的位置加以設定。 下圖說明高階工作流程:

AIB 概念概觀的圖表

您可以使用 Azure PowerShell、Azure CLI 或 Azure Resource Manager 範本,或使用 VM Image Builder DevOps 工作來傳遞範本設定。 當您將設定提交至服務時,Azure 會建立映像範本資源。 在建立映像範本資源後,暫存資源群組會在訂用帳戶中建立,其格式如下:IT_\<DestinationResourceGroup>_\<TemplateName>_\(GUID)。 暫存資源群組中包含了 ScriptURI 屬性中,File、Shell 和 PowerShell 自訂中所參考的檔案和指令碼。

若要執行組建,請在 VM Image Builder 範本資源上叫用 Run。 服務接著會部署建置所需的其他資源,例如 VM、網路、磁碟和網路介面卡。

如果您在未使用現有虛擬網路的情況下建置映像,VM Image Builder 也會部署公用 IP 和網路安全性群組,並使用安全殼層 (SSH) 或 Windows 遠端管理 (WinRM) 通訊協定連線至組建 VM。

如果您選取現有的虛擬網路,服務將會透過 Azure Private Link 進行部署,而且不需要公用 IP 位址。 如需詳細資訊,請參閱 VM Image Builder 網路功能概觀

建置完成後,將會刪除暫存資源群組和儲存體帳戶以外的所有資源。 您可以藉由刪除映像範本資源加以移除,也可將其保留以再次執行組建。

如需更多範例、逐步指南、設定範本和解決方案,請移至 VM Image Builder GitHub 存放庫

移動支援

映像範本資源不可變動,且其中包含了資源與暫存資源群組的連結。 因此,此資源類型並不支援移動。

如果您想要移動映像範本資源,請確定您有設定範本的複本,或者,若您沒有複本,請從資源擷取現有設定。 然後,在新資源群組中以新名稱建立新的映像範本資源,並刪除先前的映像範本資源。

權限

當您註冊 VM Image Builder 服務時,系統將授與您服務建立、管理及刪除暫存資源群組 (其前置詞為 IT_*) 的權限。 而且您有權將其新增至映像組建所需的任何資源。 這是因為成功註冊後,您的訂用帳戶中會提供 VM Image Builder 服務主體名稱。

若要允許 VM Image Builder 將映像散發至受控映像或計算資源庫,您必須建立 Azure 使用者指派的身分識別,其具有讀取和寫入映像的權限。 如果您要存取 Azure 儲存體,則需要讀取私人與公用容器的權限。

在 API 版本 2021-10-01 和更新版本中,VM Image Builder 支援將 Azure 使用者指派的身分識別新增至組建 VM,以啟用需要使用訂用帳戶中 Azure Key Vault 等服務進行驗證的案例。

如需有關權限的詳細資訊,請參閱

成本

當您使用 VM Image Builder 建立、組建和儲存映像時,會產生一些計算、網路和儲存體成本。 這些成本與您手動建立自訂映像時所產生的成本相似。 資源會以您的 Azure 費率收費。

注意

Azure Image Builder 服務目前不支援適用於 Windows Server 的 Azure Hybrid Benefit。

在映像建立過程中,檔案會下載並儲存在 IT_<DestinationResourceGroup>_<TemplateName> 資源群組中,這會產生少許的儲存成本。 如果您不想保留這些檔案,請在組建映像之後刪除映像範本。

VM Image Builder 會使用 Gen1 映像的預設 Standard_D1_v2 VM 大小、Gen2 映像的 Standard_D2ds_v4 大小,以及 VM 所需的儲存體和網路功能來建立 VM。 這些資源將會在組建期間持續存在,並會在 VM Image Builder 完成映像建立後遭到刪除。

VM Image Builder 會將映像散發至您選擇的區域,這可能會產生網路輸出費用。

Hyper-V 世代

VM Image Builder 目前支援在計算資源庫中建立 Hyper-V Gen1 和 Gen2 映像,並將其建立為受控映像或 VHD。 請記住,分散式映像與所提供的映像一律為同一代。

針對 Gen2 映像,請確定您使用了正確的 SKU。 例如,Ubuntu Server 18.04 Gen2 映像的 SKU 會是 18_04-lts-gen2。 Ubuntu Server 18.04 Gen1 映像的 SKU 會是 18.04-lts。

以下說明如何尋找以映像發行者為基礎的 SKU:

# Find all Gen2 SKUs published by Microsoft Windows Desktop
az vm image list --publisher MicrosoftWindowsDesktop --sku g2 --output table --all

# Find all Gen2 SKUs published by Canonical
az vm image list --publisher Canonical --sku gen2 --output table --all

如需支援 Gen2 的 Azure VM 映像的詳細資訊,請參閱 Azure Marketplace 中的 Gen2 VM 映像

下一步

若要試用 VM Image Builder,請參閱建置 LinuxWindows 映像的文章。