使用 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 連結,或選取全域搜尋文字方塊旁的 Azure Cloud Shell 圖示,以從 Azure 入口網站啟動該連結。

Screenshot showing the Azure Cloud Shell icon in the Azure portal.

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

注意

清單相當詳盡,因此您應確定將輸出限制為可用的工作階段緩衝區。

假設您選擇 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 命令來擷取其值。 例如,UrnAliasUbuntu2204 會對應至映像 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/fd7edadd-187f-41dd-a5df-f80bad63c167/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/fd7edadd-187f-0000-0000-000000000000/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>