使用 Azure CLI 佈建 Linux 虛擬機器
您可以在 Linux、macOS 和 Windows 作業系統上本機安裝 Azure CLI。 安裝詳細資料取決於作業系統,若是 Linux,則發行版本也會有所影響。
注意
如需 Linux 安裝選項的詳細資訊,請參閱在 Linux 上安裝 Azure CLI。
若要以互動方式使用 Azure CLI,請啟動作業系統內可用的殼層,例如 Windows 中的 cmd.exe,或 Linux 或 macOS 中的 Bash,然後在命令提示字元發出命令。 若要自動執行重複的工作,請使用您所選的殼層指令碼語法,將 CLI 命令組合成一個殼層指令碼,然後執行該指令碼。
如果您想要避免安裝 Azure CLI,則可以使用 Azure Cloud Shell。 Azure Cloud Shell 是互動式的已驗證殼層,可用來從網頁瀏覽器管理 Azure 資源。 Azure Cloud Shell 可以執行 Bash 和 Azure PowerShell,而且其已安裝最新版的 Azure CLI。 若要存取 Azure Cloud Shell,請在網頁瀏覽器中開啟 Azure Cloud Shell 連結,或選取全域搜尋文字方塊旁的 [Cloud Shell] 圖示,以從 Azure 入口網站啟動該連結。
Azure Cloud Shell 提供內建驗證的優點,其會使用您從網頁瀏覽器存取 Azure 訂用帳戶時所提供的認證。 這可免除在每個工作階段開始時執行 az login
命令的需求,在本機執行 Azure CLI 時必須這麼做。
使用 Azure CLI 部署 Linux VM
使用 Azure CLI 佈建執行 Linux 的 Azure VM 流程通常涉及以下一系列的高階步驟:
- 識別適當的 VM 映像。
- 識別適當的 VM 大小。
- 建立資源群組。
- 建立和設定虛擬網路。
- 建立 Azure VM。
根據現有環境和需求而定,您可能不需要完成上述每個步驟。 例如,您可以使用現有的資源群組或虛擬網路子網路來進行部署。 此外,Azure CLI 支援各種不同的預設設定,如果您決定不明確將值指派給某些資源設定,則會自動套用這些預設設定。 例如,如同以 Azure 入口網站為基礎的部署,如果您未指定現有的虛擬網路,則 Azure CLI 會自動為您佈建一個虛擬網路。 在本課程模組中,您將依賴 Azure CLI 預設設定,並略過虛擬網路的建立流程。
注意
如需使用 Azure CLI 實作虛擬網路的相關資訊,請參閱快速入門:使用 Azure CLI 建立虛擬網路。
識別適當的 VM 映像
開始佈建流程之前,您必須先判斷要使用的 VM 映像。 您也必須確認映像在將裝載部署的 Azure 區域中的可用性。
若要列出訂用帳戶中可用的 Azure 區域,請從 Azure Cloud Shell 窗格中的 Bash 工作階段執行下列命令:
az account list-locations --output table
檢閱輸出,並識別您想要使用之區域的 [名稱] 資料行中的值。 假設您選擇美國東部地區作為您的目標,名稱就會是 eastus。
若要識別適當的映像,您必須判斷其發行者、供應項目和 SKU。 若要縮小可用選項清單的範圍,請執行下列命令,列出您稍早識別之區域的非 Microsoft 發行者:
az vm image list-publishers --location eastus --query [].name --output tsv | grep -v "Microsoft" | more
注意
清單相當詳盡,因此您應確定將輸出限制為可用的工作階段緩衝區。 若要結束清單,您可以在鍵盤上使用 CTRL + C。
假設您選擇 Canonical
。 接下來,執行下列命令來識別該發行者提供的供應項目:
az vm image list-offers --location eastus --publisher Canonical --query [].name --output tsv
假設您選擇 0001-com-ubuntu-server-jammy
。 接下來,執行下列命令來識別該供應項目可用的 SKU:
az vm image list-skus --location eastus --publisher Canonical --offer 0001-com-ubuntu-server-focal --query [].name --output tsv
注意
Canonical 最近已變更供應項目名稱。 在 Ubuntu 20.04 之前,供應項目名稱為 UbuntuServer
。 針對 Ubuntu 20.04,供應項目名稱為 0001-com-ubuntu-server-focal
,而在 Ubuntu 22.04 則為 0001-com-ubuntu-server-jammy
。
若要使用特定映像部署 Azure VM,您必須判斷其 Urn
屬性的值。 此值包含發行者、供應項目、SKU 以及能夠唯一識別映像的版本號碼 (選用)。 您也可以將版本號碼設定為最新版本,以指定發行版本的最新版本。 若要顯示美國東部區域中所有 Ubuntu 22_04-lts 映像的 Urn
屬性值,請執行下列命令:
az vm image list --location eastus --publisher Canonical --offer 0001-com-ubuntu-server-jammy --sku 22_04-lts --all --output table
注意
您可以使用 UrnAlias
屬性,以更簡單 (儘管不太具彈性) 的方法來指定部署期間要使用的映像。 此屬性可供最常見的映像使用,且您可以執行 az vm image list --output table
Azure CLI 命令來擷取其值。 例如,UrnAlias
Ubuntu2204
會對應至映像 Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest
。
識別適當的 VM 大小
除了映像可用性之外,您也應該確定您想要使用的 VM 大小可在裝載部署的 Azure 區域中使用。 若要確認這一點,請執行下列命令:
az vm list-sizes --location eastus --output table
從清單中識別適合您範例部署的 VM 大小,並記下 [名稱] 資料行中的值。 執行起始 Azure VM 佈建的 Azure CLI 命令時,您必須以相同格式輸入名稱。 假設您選擇 Standard_F4s。
重要
繼續之前,請確認此 VM 大小可在您設為目標的 Azure 區域中使用,並視需要相應地調整後續命令中的參數值。
建立資源群組
識別 Azure VM 映像和大小之後,您現在可以開始佈建流程。 首先,建立一個資源群組來裝載 Azure VM 及其相依資源。 若要建立資源群組,請使用 az group create
命令。 此命令需要您同時指定名稱和位置參數的值,這兩個參數分別指定資源群組名稱和目標 Azure 區域。
az group create --name rg_lnx-cli --location eastus
該命令的輸出應該類似下列的範例:
{
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/sample-RG",
"location": "eastus",
"managedBy": null,
"name": "rg_lnx-cli",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
建立 Azure VM
若要建立 VM,請使用 az vm create
命令。 此命令支援各種不同的參數,包括 OS 映像、磁碟大小及系統管理認證。 在下列的範例中,az vm create
命令會觸發名為 sample-cli-vm0 的 Azure VM 部署,其裝載最新的 Ubuntu 22_04-lts-gen2 SKU 版本。 佈建流程會根據 SSH 金鑰組,使用驗證設定名為 azureuser 的管理使用者帳戶。 私密金鑰和公開金鑰會在本機產生並儲存在其預設位置 (~/.ssh),以允許 SSH 存取 Azure VM。 使用下列程式碼範例來建立 Azure VM:
az vm create \
--resource-group rg_lnx-cli \
--name lnx-cli-vm \
--image Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest \
--size Standard_F4s \
--admin-username azureuser \
--generate-ssh-keys
注意
--size
是選用參數。 如果您決定將其排除,產生的大小將取決於您所選擇的映像。
Azure VM 稍後 (通常是幾分鐘內) 會立即開始執行。 Azure CLI 命令輸出會包含新部署 Azure VM 的 JSON 格式資訊:
{
"fqdns": "",
"id": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/rg_lnx-cli/providers/Microsoft.Compute/virtualMachines/lnx-cli-vm",
"location": "eastus",
"macAddress": "00-0D-3A-8C-C6-AE",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "20.51.149.212",
"resourceGroup": "rg_lnx-cli",
"zones": ""
}
此時,您將能夠連線到 Azure VM,方法是從私密金鑰儲存所在的電腦中執行下列命令 (在將 <public_ip_address> 預留位置取代為在 Azure CLI 產生輸出中所識別的 IP 位址):
ssh azureuser@<public_ip_address>