使用 Azure CLI 2.0 從自定義磁盤創建 Linux VM

本文說明如何在 Azure 中上傳自定義的虛擬硬盤 (VHD) 或復制現有 VHD,并從自定義磁盤創建 Linux 虛擬機 (VM)。 可以根據要求安裝并配置 Linux 分發版,并使用該 VHD 快速創建新的 Azure 虛擬機。

如果想要從自定義磁盤創建多個 VM,則應該從 VM 或 VHD 創建映像。 有關詳細信息,請參閱使用 CLI 創建 Azure VM 的自定義映像

可以使用兩個選項:

上傳 VHD

復制現有的 Azure VM

快速命令

Note

在 Azure 中國區使用 Azure CLI 2.0 之前,請先運行az cloud set -n AzureChinaCloud來改變云環境。如果想切回國際版 Azure,請再次運行az cloud set -n AzureCloud。

使用az vm create從自定義或專用的磁盤創建新 VM 時,請附加該磁盤 (--attach-os-disk),而不要指定自定義映像或 Marketplace 映像 (--image)。 以下示例使用從自定義 VHD 創建的、名為myManagedDisk的托管磁盤,創建名為myVM的 VM:

Azure CLI復制

azvmcreate--resource-groupmyResourceGroup--locationchinaeast--namemyVM \--os-typelinux--attach-os-diskmyManagedDisk

要求

若要完成以下步驟,需要:

已準備好在 Azure 中使用的 Linux 虛擬機。 本文的準備 VM部分介紹了如何查找有關安裝 Azure Linux 代理 (waagent) 的特定于分發版的信息。要使 VM 在 Azure 中正常工作,以及要通過 SSH 連接到 VM,需要用到該代理。

用于將Azure 認可的 Linux 分發版(或參閱關于未認可分發版的信息)安裝到采用 VHD 格式的虛擬磁盤的 VHD 文件。 可使用多種工具創建 VM 和 VHD:

安裝并配置QEMUKVM,并注意使用 VHD 作為映像格式。 如果需要,可以使用qemu-img convert轉換映像

也可以在Windows 10Windows Server 2012/2012 R2上使用 Hyper-V。

Note

Azure 不支持更新的 VHDX 格式。 創建 VM 時,請將 VHD 指定為映像格式。 如果需要,可以使用qemu-img convertConvert-VHDPowerShell cmdlet 將 VHDX 磁盤轉換為 VHD。 此外,Azure 不支持上傳動態 VHD,因此,上傳之前,需要將此類磁盤轉換為靜態 VHD。 可以使用Azure VHD Utilities for GO等工具在上傳到 Azure 的過程中轉換動態磁盤。

確保已安裝了最新的Azure CLI 2.0并已使用az login登錄到 Azure 帳戶。

在以下示例中,請將示例參數名稱替換成自己的值。 示例參數名稱包括myResourceGroup、mystorageaccountmydisks

準備 VM

Azure 支持各種 Linux 分發(請參閱認可的分發)。 以下文章指導用戶準備 Azure 上支持的各種 Linux 分發版:

基于 CentOS 的分發版

Debian Linux

Oracle Linux

Red Hat Enterprise Linux

SLES 和 openSUSE

Ubuntu

其他 - 非認可分發版

另請參閱Linux 安裝說明,獲取更多有關如何為 Azure 準備 Linux 映像的一般提示。

Note

只有在使用某個認可的分發的時候也使用Azure 認可的分發中的 Linux中“支持的版本”下指定的配置詳細信息時,Azure 平臺 SLA才適用于運行 Linux 的 VM。

選項 1:上傳 VHD

可以上傳本地計算機上運行的或者從另一個云導出的自定義 VHD。 若要使用 VHD 創建新的 Azure VM,需要將 VHD 上傳到存儲帳戶,并從該 VHD 創建托管磁盤。

創建資源組

在上傳自定義磁盤和創建 VM 之前,首先需要使用az group create創建一個資源組。

以下示例在chinaeast位置創建名為myResourceGroup的資源組:Azure 托管磁盤概述

Azure CLI復制

azgroupcreate\--namemyResourceGroup \--locationchinaeast

創建存儲帳戶

可以使用az storage account create為自定義磁盤和 VM 創建存儲帳戶。

以下示例在前面創建的資源組中創建名為mystorageaccount的存儲帳戶:

Azure CLI復制

azstorageaccountcreate\--resource-groupmyResourceGroup \--locationchinaeast \--namemystorageaccount \--kindStorage \--skuStandard_LRS

列出存儲帳戶密鑰

Azure 為每個存儲帳戶生成兩個 512 位的訪問密鑰。 在向存儲帳戶進行身份驗證以執行操作(例如執行寫入操作)時,會使用這些訪問密鑰。 從此處了解有關管理對存儲的訪問的詳細信息。 可以使用az storage account keys list查看訪問密鑰。

查看創建的存儲帳戶的訪問密鑰:

Azure CLI復制

azstorageaccountkeyslist\--resource-groupmyResourceGroup \--account-namemystorageaccount

輸出類似于:

Azure CLI復制

info:? ? Executing commandstorageaccountkeyslist+ Gettingstorageaccountkeysdata:? ? Name? Key? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Permissionsdata:-------------------------------------------------------------------------------------------------------data:? ? key1? d4XAvZzlGAgWdvhlWfkZ9q4k9bYZkXkuPCJ15NTsQOeDeowCDAdB80r9zA/tUINApdSGQ94H9zkszYyxpe8erw==? Fulldata:? ? key2? Ww0T7g4UyYLaBnLYcxIOTVziGAAHvU+wpwuPvK4ZG0CDFwu/mAxS/YYvAQGHocq1w7/3HcalbnfxtFdqoXOw8g==? Fullinfo:storageaccountkeyslistcommand OK

記下key1,因為在后續步驟中需要使用它來與存儲帳戶交互。

創建存儲容器

在存儲帳戶中創建用于整理磁盤的容器的方式,與創建各種目錄以便有條理地整理本地文件系統的方式相同。 一個存儲帳戶可以包含任意數目的容器。 可以使用az storage container create創建容器。

以下示例創建名為mydisks的容器:

Azure CLI復制

azstoragecontainercreate\--account-namemystorageaccount \--namemydisks

上傳 VHD

現在,使用az storage blob upload上傳自定義磁盤。 可以頁 Blob 的形式上傳和存儲自定義磁盤。

指定訪問密鑰、在上一步中創建的容器,以及自定義磁盤在本地計算機上的路徑:

Azure CLI復制

azstorageblobupload--account-namemystorageaccount \--account-keykey1 \--container-namemydisks \--typepage \--file/path/to/disk/mydisk.vhd \--namemyDisk.vhd

上傳 VHD 可能需要一些時間。

創建托管磁盤

使用az disk create從 VHD 創建托管磁盤。 以下示例從已上傳到命名存儲帳戶和容器的 VHD 創建名為myManagedDisk的托管磁盤:

Azure CLI復制

azdiskcreate\--resource-groupmyResourceGroup \--namemyManagedDisk \--sourcehttps://mystorageaccount.blob.core.chinacloudapi.cn/mydisks/myDisk.vhd

選項 2:復制現有 VM

也可以在 Azure 中創建自定義的 VM,并復制 OS 磁盤并將其附加到新 VM 以創建另一個副本。 這種做法在測試中不會有任何問題,但若要將現有 Azure VM 作為多個新 VM 的模型,則必須改為創建映像。 有關從現有 Azure VM 創建映像的詳細信息,請參閱使用 CLI 創建 Azure VM 的自定義映像

創建快照

此示例在資源組myResourceGroup中創建名為myVM的 VM 的快照,并創建名為osDiskSnapshot的快照。

azure-cli復制

osDiskId=$(azvmshow-gmyResourceGroup-nmyVM--query"storageProfile.osDisk.managedDisk.id"-otsv)azsnapshotcreate\-gmyResourceGroup \--source"$osDiskId"\--nameosDiskSnapshot

創建托管磁盤

從快照創建新的托管磁盤。

獲取快照的 ID。 在此示例中,快照名為osDiskSnapshot,位于myResourceGroup資源組中。

azure-cli復制

snapshotId=$(azsnapshotshow--nameosDiskSnapshot--resource-groupmyResourceGroup--query[id]-otsv)

創建托管磁盤。 在此示例中,我們會在標準存儲中從快照創建大小為 128GB、名為myManagedDisk的托管磁盤。

azure-cli復制

az disk create \? ? --resource-group myResourceGroup \--name myManagedDisk \--sku Standard_LRS \--size-gb128\--source $snapshotId

創建 VM

現在,使用az vm create創建 VM,并將托管磁盤附加為 OS 磁盤 (--attach-os-disk)。 以下示例使用基于上傳的 VHD 創建的托管磁盤創建名為myNewVM的 VM:

Azure CLI復制

azvmcreate\--resource-groupmyResourceGroup \--locationchinaeast \--namemyNewVM \--os-typelinux \--attach-os-diskmyManagedDisk

現在,應該可以使用憑據通過 SSH 從源 VM 連接到該 VM。

后續步驟

準備好并上傳自定義虛擬磁盤之后,可以閱讀有關使用 Resource Manager 和模板的詳細信息。 可能還需要向新 VM添加數據磁盤。 如果需要訪問在 VM 上運行的應用程序,請務必打開端口和終結點。

立即訪問http://market.azure.cn

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容