閱讀英文

共用方式為


教學課程:使用 Azure CLI 建立和管理 Linux VM

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

Azure 虛擬機器提供完全可設定且彈性的計算環境。 本教學課程涵蓋基本的「Azure 虛擬機器」部署項目,例如選取 VM 大小、選取 VM 映像、部署 VM。 您將學習如何:

  • 建立及連線到 VM
  • 選取及使用 VM 映像
  • 檢視及使用特定 VM 大小
  • 調整 VM 大小
  • 檢視及了解 VM 狀態

本教學課程會使用 Azure Cloud Shell 內的 CLI,這會不斷更新至最新版本。

如果您選擇在本機安裝和使用 CLI,本教學課程會要求您執行 Azure CLI 2.0.30 版或更新版本。 執行 az --version 以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI

建立資源群組

使用 az group create 命令來建立資源群組。

Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。 必須先建立資源群組,再建立虛擬機器。 在此範例中,會在 eastus2 區域中建立名為 myResourceGroupVM 的資源群組。

Azure CLI
az group create --name myResourceGroupVM --location eastus2

在建立或修改 VM 時,會指定資源群組,在本教學課程的整個過程中可以看到此操作。

建立虛擬機器

使用 az vm create 命令建立虛擬機器。

建立虛擬機器時,有數個可用的選項,例如作業系統映像、磁碟大小及系統管理認證。 下列範例會建立名為 myVM 的 VM,以執行 SUSE Linux Enterprise Server (SLES)。 VM 上會建立名為 azureuser 的使用者帳戶,而如果預設金鑰位置 (~/.ssh) 沒有 SSH 金鑰,則會加以產生:

Azure CLI
az vm create \
    --resource-group myResourceGroupVM \
    --name myVM \
    --image SuseSles15SP3 \
    --public-ip-sku Standard \
    --admin-username azureuser \
    --generate-ssh-keys

系統可能需要幾分鐘的時間來建立 VM。 建立 VM 之後,Azure CLI 就會輸出 VM 的相關資訊。 請記下 publicIpAddress,此位址可用來存取虛擬機器。

輸出
{
  "fqdns": "",
  "id": "/subscriptions/d5b9d4b7-6fc1-0000-0000-000000000000/resourceGroups/myResourceGroupVM/providers/Microsoft.Compute/virtualMachines/myVM",
  "location": "eastus2",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "52.174.34.95",
  "resourceGroup": "myResourceGroupVM"
}

連接到 VM

您現在可以在 Azure Cloud Shell 中使用 SSH 連線到 VM,也可以從本機電腦與 VM 連線。 請使用先前步驟中記下的 publicIpAddress 來取代範例 IP 位址。

Bash
ssh azureuser@52.174.34.95

在登入 VM 後,您就可以安裝和設定應用程式。 完成時,請像平常一樣地關閉 SSH 工作階段:

Bash
exit

了解 VM 映像

Azure Marketplace 包含許多可用來建立 VM 的映像。 在先前的步驟中,是使用 Ubuntu 映像來建立虛擬機器。 在此步驟中,則是使用 Azure CLI 來搜尋 Marketplace 中的 Ubuntu 映像,然後使用此映像來部署第二部虛擬機器。

若要查看最常用的映像清單,請使用 az vm image list 命令。

Azure CLI
az vm image list --output table

此命令輸出會傳回 Azure 上最常用的 VM 映像。

輸出
Architecture    Offer                         Publisher               Sku                                 Urn                                                                             UrnAlias                 Version
--------------  ----------------------------  ----------------------  ----------------------------------  ------------------------------------------------------------------------------  -----------------------  ---------
x64             debian-10                     Debian                  10                                  Debian:debian-10:10:latest                                                      Debian                   latest
x64             flatcar-container-linux-free  kinvolk                 stable                              kinvolk:flatcar-container-linux-free:stable:latest                              Flatcar                  latest
x64             opensuse-leap-15-3            SUSE                    gen2                                SUSE:opensuse-leap-15-3:gen2:latest                                             openSUSE-Leap            latest
x64             RHEL                          RedHat                  7-LVM                               RedHat:RHEL:7-LVM:latest                                                        RHEL                     latest
x64             sles-15-sp3                   SUSE                    gen2                                SUSE:sles-15-sp3:gen2:latest                                                    SLES                     latest
x64             0001-com-ubuntu-server-jammy  Canonical               18.04-LTS                           Canonical:UbuntuServer:18.04-LTS:latest                                         UbuntuLTS                latest
x64             WindowsServer                 MicrosoftWindowsServer  2022-Datacenter                     MicrosoftWindowsServer:WindowsServer:2022-Datacenter:latest                     Win2022Datacenter        latest
x64             WindowsServer                 MicrosoftWindowsServer  2022-datacenter-azure-edition-core  MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition-core:latest  Win2022AzureEditionCore  latest
x64             WindowsServer                 MicrosoftWindowsServer  2019-Datacenter                     MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest                     Win2019Datacenter        latest
x64             WindowsServer                 MicrosoftWindowsServer  2016-Datacenter                     MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest                     Win2016Datacenter        latest
x64             WindowsServer                 MicrosoftWindowsServer  2012-R2-Datacenter                  MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest                  Win2012R2Datacenter      latest
x64             WindowsServer                 MicrosoftWindowsServer  2012-Datacenter                     MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest                     Win2012Datacenter        latest
x64             WindowsServer                 MicrosoftWindowsServer  2008-R2-SP1                         MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:latest                         Win2008R2SP1             latest

新增 --all 參數即可查看完整的清單。 您也可以依 --publisher–-offer 來篩選此映像清單。 在此範例中,清單會針對 OpenLogic 發行的所有映像進行篩選,並提供與 0001-com-ubuntu-server-jammy 相符的供應項目。

Azure CLI
az vm image list --offer 0001-com-ubuntu-server-jammy --publisher Canonical --all --output table

部分輸出範例:

輸出
Architecture    Offer                              Publisher    Sku              Urn                                                                       Version
--------------  ---------------------------------  -----------  ---------------  ------------------------------------------------------------------------  ---------------
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202204200          22.04.202204200
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202205060          22.04.202205060
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202205280          22.04.202205280
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206040          22.04.202206040
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206090          22.04.202206090
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206160          22.04.202206160
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206220          22.04.202206220
x64             0001-com-ubuntu-server-jammy       Canonical    22_04-lts        Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202207060          22.04.202207060

注意

Canonical 已變更它們用於最新版本的供應項目名稱。 在 Ubuntu 20.04之前,供應項目名稱為 UbuntuServer。 針對 Ubuntu 20.04,供應項目名稱是 0001-com-ubuntu-server-focal,而 Ubuntu22.04 則為 0001-com-ubuntu-server-jammy

若要使用特定映像部署 VM,請記下 Urn 資料行中的值,其中包含可用來識別映像的發行者、供應項目、SKU 和版本號碼 (選擇性)。 指定映像時,可以使用 latest 來取代映像版本號碼,這會選取最新的散發版本。 在此範例中,--image 參數用於指定最新版的 Ubuntu 22.04。

Azure CLI
az vm create --resource-group myResourceGroupVM --name myVM2 --image Canonical:0001-com-ubnutu-server-jammy:22_04-lts:latest --generate-ssh-keys

了解 VM 大小

虛擬機器大小會決定可供虛擬機器使用的計算資源 (例如 CPU、GPU 和記憶體) 數量。 您必須針對預期的工作負載,來適當設定虛擬機器的大小。 如果工作負載增加,可以調整現有虛擬機器的大小。

VM 大小

下表會將大小分類成各種使用案例。

類型 描述
一般用途 平衡的 CPU 對記憶體。 適用於開發/測試及小型到中型應用程式和資料解決方案。
計算最佳化 CPU 對記憶體的比例高。 適用於中流量應用程式、網路設備,以及批次處理。
記憶體最佳化 記憶體對核心的比例高。 很適合用於關聯式資料庫、中型至大型快取,以及記憶體內部分析。
儲存體最佳化 高磁碟輸送量及 IO。 非常適合巨量資料、SQL 與 NoSQL 資料庫。
GPU 以大量圖形轉譯和影片編輯為目標的特製化 VM。
高效能 我們的最強大 CPU VM,可搭配選用的高輸送量網路介面 (RDMA)。

尋找可用的 VM 大小

若要查看特定區域中可用的 VM 大小清單,請使用 az vm list-sizes 命令。

Azure CLI
az vm list-sizes --location eastus2 --output table

部分輸出範例:

輸出
  MaxDataDiskCount    MemoryInMb  Name                      NumberOfCores    OsDiskSizeInMb    ResourceDiskSizeInMb
------------------  ------------  ----------------------  ---------------  ----------------  ----------------------
4                   8192          Standard_D2ds_v4           2                1047552           76800
8                   16384         Standard_D4ds_v4           4                1047552           153600
16                  32768         Standard_D8ds_v4           8                1047552           307200
32                  65536         Standard_D16ds_v4          16               1047552           614400
32                  131072        Standard_D32ds_v4          32               1047552           1228800
32                  196608        Standard_D48ds_v4          48               1047552           1843200
32                  262144        Standard_D64ds_v4          64               1047552           2457600
4                   8192          Standard_D2ds_v5           2                1047552           76800
8                   16384         Standard_D4ds_v5           4                1047552           153600
16                  32768         Standard_D8ds_v5           8                1047552           307200
32                  65536         Standard_D16ds_v5          16               1047552           614400
32                  131072        Standard_D32ds_v5          32               1047552           1228800
32                  196608        Standard_D48ds_v5          48               1047552           1843200
32                  262144        Standard_D64ds_v5          64               1047552           2457600
32                  393216        Standard_D96ds_v5          96               1047552           3686400

建立特定大小的 VM

在先前的 VM 建立範例中,並未提供大小,因此是採用預設大小。 您可以在建立 VM 時,使用 az vm create--size 參數來選取 VM 大小。

Azure CLI
az vm create \
    --resource-group myResourceGroupVM \
    --name myVM3 \
    --image SuseSles15SP3 \
    --size Standard_D2ds_v4  \
    --generate-ssh-keys

調整 VM 大小

在部署 VM 之後,可以調整其大小以增加或減少資源配置。 您可以使用 az vm show 檢視 VM 目前的大小:

Azure CLI
az vm show --resource-group myResourceGroupVM --name myVM --query hardwareProfile.vmSize

在調整 VM 大小之前,請先檢查目前的 Azure 叢集上是否有所需的大小可用。 az vm list-vm-resize-options 命令會傳回大小清單。

Azure CLI
az vm list-vm-resize-options --resource-group myResourceGroupVM --name myVM --query [].name

如果有所需的大小可用,即可從已開機狀態調整 VM 的大小,但是會在作業期間重新開機。 請使用 az vm resize 命令來執行調整大小作業。

Azure CLI
az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_D4s_v3

如果目前的叢集上沒有所需的大小,則必須先將 VM 解除配置,才能進行調整大小作業。 請使用 az vm deallocate 命令將 VM 停止並解除配置。 請注意,重新開啟 VM 電源之後,可能會移除暫存磁碟上的任何資料。 公用 IP 位址也會變更,除非使用的是靜態 IP 位址。

Azure CLI
az vm deallocate --resource-group myResourceGroupVM --name myVM

一旦解除配置,便可以調整大小。

Azure CLI
az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_GS1

調整大小之後,即可重新啟動 VM。

Azure CLI
az vm start --resource-group myResourceGroupVM --name myVM

VM 電源狀態

Azure VM 的電源狀態可以是許多電源狀態的其中一種。 這個狀態代表從 Hypervisor 的觀點來看,VM 的目前狀態。

電源狀態

電源狀態 描述
啟動中 表示虛擬機器正在啟動。
執行中 表示虛擬機器正在執行。
正在停止 表示虛擬機器正在停止。
已停止 表示虛擬機器已停止。 處於已停止狀態的虛擬機器仍然會產生運算費用。
正在解除配置 表示虛擬機器正在解除配置。
已解除配置 表示虛擬機器已從 Hypervisor 中移除,但仍可在控制平面中使用。 處於「已解除配置」狀態的虛擬機器不會產生計算費用。
- 表示虛擬機器的電源狀態不明。

尋找電源狀態

若要擷取特定 VM 的狀態,請使用 az vm get-instance-view 命令。 請務必為虛擬機器和資源群組指定有效的名稱。

Azure CLI
az vm get-instance-view \
    --name myVM \
    --resource-group myResourceGroupVM \
    --query instanceView.statuses[1] --output table

輸出:

輸出
Code                Level    DisplayStatus
------------------  -------  ---------------
PowerState/running  Info     VM running

若要取得訂用帳戶中所有 VM 的電源狀態,請使用虛擬機器 - 列出所有 API,並將參數 statusOnly 設定為 True

管理工作

在虛擬機器的生命週期內,您可以執行一些管理工作,例如啟動、停止或刪除虛擬機器。 此外,您也可以建立指令碼來自動執行重複性或複雜的工作。 使用 Azure CLI 即可從命令列或在指令碼中執行許多常見的管理工作。

取得 IP 位址

此命令會傳回虛擬機器的私人和公用 IP 位址。

Azure CLI
az vm list-ip-addresses --resource-group myResourceGroupVM --name myVM --output table

停止虛擬機器

Azure CLI
az vm stop --resource-group myResourceGroupVM --name myVM

啟動虛擬機器

Azure CLI
az vm start --resource-group myResourceGroupVM --name myVM

刪除 VM 資源

可能只刪除 VM 資源,而不是網路和磁碟資源,視您刪除 VM 的方式而定。 刪除 VM 時,可以變更預設行為以刪除其他資源。 如需詳細資訊,請參閱刪除 VM 和已連結的資源

刪除資源群組也會刪除資源群組中的所有資源,例如 VM、虛擬網路和磁碟。 --no-wait 參數不會等待作業完成,就會將控制項傳回給提示字元。 --yes 參數會確認您想要刪除資源,而不另外對您提示將要進行此作業。

Azure CLI
az group delete --name myResourceGroupVM --no-wait --yes

下一步

在本教學課程中,您已了解基本的 VM 建立和管理,像是如何:

  • 建立及連線到 VM
  • 選取及使用 VM 映像
  • 檢視及使用特定 VM 大小
  • 調整 VM 大小
  • 檢視及了解 VM 狀態

請前進到下一個教學課程,以了解 VM 磁碟。