練習 - 使用 Azure CLI 以互動方式建立 Azure 資源
在原始案例中,您必須建立虛擬機器 (VM) 來測試您的客戶關係管理 (CRM) 軟體。 當新的組建可用時,您想要啟用新的 VM,以從乾淨映像測試完整的安裝體驗。 測試完成後,您就可以刪除 VM。
讓我們試試建立 VM 的命令。
練習 - 使用 Azure CLI 建立 Linux VM
既然您正在使用 Azure 沙箱,您不需要建立資源群組。 相反的,使用現有的沙箱資源群組
以下說明如何使用 Azure CLI 建立新的 Azure VM:
使用
az vm create
命令建立 VM。使用
az group list
命令取得沙箱資源群組的名稱。遵循組織的命名標準來為 VM 指派名稱。
從可用的 Azure 沙箱位置清單中選擇靠近您的位置:
- westus2
- 美國中南部
- centralus
- eastus
- westeurope
- 東南亞
- japaneast
- brazilsouth
- australiasoutheast
- centralindia
使用 Linux 映像:
Ubuntu2204
。遵循組織的命名標準來為系統管理員指派使用者名稱。
#!/bin/bash # Get the single resource group name created by the sandbox. rgName=$(az group list --query "[].{Name:name}" --output tsv) echo $rgName # Create additional variables with values of your choice. vmName="msdocs-vm-01" vmLocation="westus" vmImage="Ubuntu2204" vmAdminUserName="myAzureUserName" # Create the VM az vm create \ --resource-group $rgName \ --name $vmName \ --location $vmLocation \ --image $vmImage \ --public-ip-sku Standard \ --admin-username $vmAdminUserName \ --generate-ssh-keys
提示
您是否只使用 [複製] 按鈕,且注意到所有行接續字元都遭到移除? 這是依照設計的行為。 因為 Azure CLI 可以在具有不同行接續字元的許多環境中執行,因此 [複製] 按鈕會將這些字元移除。 如果您想要複製格式化的指令碼,請使用滑鼠來選取與複製程式碼區塊的內容。
若要在 Azure Cloud Shell 中貼上,在 Cloud Shell 終端中以滑鼠右鍵按一下新行,然後選取 [貼上],或使用 Shift+Insert 鍵盤快速鍵 (在 macOS 上為 ⌘+V)。
如果指令碼未正確複製,沙箱終端正在等待新增輸入,請使用 CTRL + Z 返回提示,然後再試一次。
等候 Linux VM 建立:
VM 建立流程需要數分鐘的時間才能完成。
取得 VM 的相關資訊
完成時,Azure CLI 會以 JSON 格式傳回 VM 的相關資訊。 使用
az vm list
和az vm show
命令取得 VM 的具體資訊。 以下列出一些範例:其中數個指令碼會使用在先前步驟中儲存的變數名稱和值。
取得資料表格式的所有 VM 清單。
az vm list --output table
取得 JSON 格式單一 VM 的相關資訊。
此輸出的部分內容會在建立新的 VM 之後顯示。 不過,在找出要在指令碼中參考的巢狀屬性名稱時,傳回更多資訊會很有用。 屬性名稱會區分大小寫。
az vm show --resource-group $rgName --name $vmName
取得 VM 屬性的相關資訊。
# Get the time the VM was created az vm show --resource-group $rgName --name $vmName --query "timeCreated" # Get the OS disk storage account type az vm show --resource-group $rgName --name $vmName --query "storageProfile.osDisk.managedDisk.storageAccountType"
將 VM 的屬性儲存在變數中。
Azure CLI 有數種可用的輸出類型。 JSON 是預設值,但在將值儲存在變數中時,請使用
--output tsv
移除額外的格式化。#!/bin/bash # Store the VM id vmID=$(az vm show --resource-group $rgName --name $vmName --query id --output tsv) echo $vmID # Store the public IP address publicIP=$(az vm list-ip-addresses \ --resource-group $rgName \ --name $vmName \ --query "[].virtualMachine.network.publicIpAddresses[0].ipAddress" --output tsv) echo $publicIP
連線至 VM。**
#!/bin/bash az ssh vm --private-key-file \path\to\private\key \ --resource-group $rgName \ --name $vmName \ --local-user $vmAdminUserName
輸入 exit 來登出。
深入了解 VM 選項
在命令列使用 Azure 資源時,您使用的不是 Azure 入口網站,此入口網站通常會提供屬性選項的挑選清單。 例如,可用位置和 VM 大小的清單。 Azure CLI 在可提供這項資訊的許多命令群組中有數個命令。 以下是 VM 的一些範例:
提示
Azure CLI --output table
格式不會傳回 100% 的可用資訊,但通常會讓大型命令結果更容易閱讀。 使用 --query
參數來指定您最感興趣的資訊。
取得位置的可用 VM 大小:
az vm list-sizes --location westus --output table
取得位置的可用 SKU:
視您選取的
--location
而定,Azure CLI 可能需要一或兩分鐘的時間,才能傳回完整的 SKU 清單。# virtual machines az vm list-skus --location westus --resource-type virtualMachines --output table # disks az vm list-skus --location westus --resource-type disks --output table
取得現有 VM 可用調整大小選項:
az vm list-vm-resize-options --resource-group $rgName --name $vmName --output table
顯示資源群組中所有 VM 的詳細資料。**
如果您選擇在本機環境中工作,且在訂用帳戶中有多個 VM,請查詢與篩選準則相符的 VM。
#!/bin/bash # details of all VMs in a specified resource group az vm show --show-details --ids $(az vm list --resource-group $rgName --query "[].id" -o tsv) # list of all VMs created in the last 7 days createDate=$(date +%F -d "-7days") az vm list --resource-group $rgName \ --query "[?timeCreated >='$createDate'].{Name:name, admin:osProfile.adminUsername, DiskSize:storageProfile.osDisk.diskSizeGb}" \ --output table # list all VMs whose disks are of a certain type # first get a list of the disk types or organization is using az vm list --resource-group $rgName --query "[].{Name:name, osDiskSize:storageProfile.osDisk.diskSizeGb, managedDiskTypes:storageProfile.osDisk.managedDisk.storageAccountType}" --output table diskType="Premium_LRS" az vm list --resource-group $rgName \ --query "[?storageProfile.osDisk.managedDisk.storageAccountType =='$diskType'].{Name:name, admin:osProfile.adminUsername, osDiskSize:storageProfile.osDisk.diskSizeGb, CreatedOn:timeCreated, vmID:id}" \ --output table
停止或刪除 VM
將 VM 關機:
雖然 VM 會繼續計費,但您可以關閉 (停止) 執行中的 VM。
az vm stop --resource-group $rgName --name $vmName
輸入 Y,並在出現提示時按 Enter 繼續。
解除配置 VM:
若要避免針對已停止的 VM 計費,您可以將其解除配置。 解除配置 VM 包含不再配置的資源 (不再收取費用)。 VM 的狀態會從「已停止」變更為「已停止 (已解除分配)」。
az vm deallocate --resource-group $rgName --name $vmName
刪除 VM:
VM 停止後,執行
az vm delete
命令以刪除 VM。az vm delete --resource-group $rgName --name $vmName
輸入 Y,並在出現提示時按 Enter 繼續。
當您以互動方式執行這些命令時,更好的方法是撰寫 Azure CLI 指令碼。 您可以透過指令碼,在未來重複使用邏輯來建立或刪除 VM。
在下一個單元中,讓我們使用 Azure CLI 指令碼,將這些工作自動化。