練習 - 使用 Azure PowerShell 以互動方式建立 Azure 資源
在原始案例中,您必須建立虛擬機器 (VM) 來測試您的客戶關係管理 (CRM) 軟體。 當新的組建可用時,您想要啟用新的 VM,以從乾淨映像測試完整的安裝體驗。 測試完成後,您就可以刪除 VM。
讓我們試試建立 VM 的命令。
使用 Azure PowerShell 建立 Linux VM
既然您正在使用 Azure 沙箱,您不需要建立資源群組。 相反的,使用現有的沙箱資源群組
以下說明如何使用 Azure PowerShell 建立新的 Azure VM:
使用
New-AzVM
Cmdlet 建立 VM。指定沙箱資源群組:
[沙箱資源群組名稱] 。遵循組織的命名標準來為 VM 命名。
從可用的 Azure 沙箱位置清單中選擇靠近您的位置。
- westus2
- 美國中南部
- centralus
- eastus
- westeurope
- 東南亞
- japaneast
- brazilsouth
- australiasoutheast
- centralindia
使用 Ubuntu Linux 映像:
Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest
。使用
Get-Credential
Cmdlet 來設定 VM 系統管理員認證。針對 SSH 存取,新增具有連接埠
22
的 OpenPorts 參數。針對 SSH 登入,建立公用 IP 位址名稱。
$azVmParams = @{ ResourceGroupName = '<rgn>[sandbox resource group name]</rgn>' Name = 'testvm-eus-01' Credential = (Get-Credential) Location = 'eastus' Image = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest' OpenPorts = 22 PublicIpAddressName = 'testvm-eus-01' } New-AzVm @azVmParams
提示
您可以使用 [複製] 按鈕將命令複製到剪貼簿。 要貼上命令,請在 Cloud Shell 終端中,以滑鼠右鍵按一下新行,然後選取 [貼上],或使用 Shift+Insert 鍵盤快速鍵 (在 macOS 上為 ⌘+V)。
輸入認證:
出現提示時,請遵循以下準則輸入使用者名稱和密碼:密碼長度必須為 12-123 個字元,並滿足以下四個複雜性要求中的三個:小寫字元、大寫字元、數字和特殊字元 (Regex 符合 [\W_])。 如需詳細資訊,請參閱 Linux VM 常見問題集 (部分機器翻譯)。
等候 VM 建立完成:
VM 建立流程需要數分鐘的時間才能完成。
查詢 VM:
完成後,查詢 VM 並將 VM 物件指派給變數 (
$vm
)。$vm = Get-AzVM -Name testvm-eus-01 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
檢視 VM 的資訊:
若要檢視 VM 的資訊,請顯示變數的內容。
$vm
範例輸出:
ResourceGroupName : <rgn>[sandbox resource group name]</rgn> Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rgn>[sandbox resource group name]</rgn>/providers/Microsoft.Compute/virtualMachines/testvm-eus-01 VmId : 00000000-0000-0000-0000-000000000000 Name : testvm-eus-01 Type : Microsoft.Compute/virtualMachines Location : eastus Tags : {} HardwareProfile : {VmSize} NetworkProfile : {NetworkInterfaces} OSProfile : {ComputerName, AdminUsername, LinuxConfiguration, Secrets} ProvisioningState : Succeeded StorageProfile : {ImageReference, OsDisk, DataDisks} ...
檢查 VM 屬性:
您可以透過 member-access 運算子 (
.
) 來檢查複雜物件。 例如,若要查看VMSize
物件中與 HardwareProfile 區段關聯的屬性,請執行下列命令:$vm.HardwareProfile
或者,若要取得其中一個磁碟的相關資訊,請執行下列命令:
$vm.StorageProfile.OsDisk
取得可用的 VM 大小:
將 VM 物件傳遞到其他 Cmdlet 以取得可用大小:
$vm | Get-AzVMSize
取得公用 IP 位址:
擷取公用 IP 位址以連線到 VM,並將其儲存在變數中。
$ip = Get-AzPublicIpAddress -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -Name testvm-eus-01
連線至 VM:
使用來自變數的 IP 位址,透過 SSH 連線到 VM。 例如,如果使用者名稱為
bob
,請使用下列命令:ssh bob@$($ip.IpAddress)
輸入 exit 來登出。
刪除 VM
若要嘗試更多命令,請先刪除 VM。 執行下列步驟:
將 VM 關機:
執行以下命令:
Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
輸入 Y,並在出現提示時按 Enter 繼續。
刪除 VM:
VM 停止後,執行
Remove-AzVM
Cmdlet 以刪除 VM。Remove-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
輸入 Y,並在出現提示時按 Enter 繼續。
列出資源群組中的所有資源:
使用
Get-AzResource
Cmdlet 列出資源群組中的所有資源。 結果會透過管道傳送至Select-Object
以傳回特定屬性:Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Select-Object -Property Name, ResourceType, ResourceGroupName
您應該會看到數個仍存在的資源,包含磁碟、虛擬網路等等:
Name ResourceType ResourceGroupName ---- ------------ ----------------- cloudshell Microsoft.Storage/storageAccounts <rgn>[sandbox resource group name]</rgn> testvm-eus-01 Microsoft.Network/virtualNetworks <rgn>[sandbox resource group name]</rgn> testvm-eus-01 Microsoft.Network/publicIPAddresses <rgn>[sandbox resource group name]</rgn> testvm-eus-01 Microsoft.Network/networkSecurityGroups <rgn>[sandbox resource group name]</rgn> testvm-eus-01 Microsoft.Network/networkInterfaces <rgn>[sandbox resource group name]</rgn> testvm-eus-01_OsDisk_1 Microsoft.Compute/disks <rgn>[sandbox resource group name]</rgn>
Remove-AzVM
命令只會刪除 VM。 它並未清理其他任何資源。 若要手動清除它們,請遵循下列步驟:刪除網路介面:
Get-AzNetworkInterface -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name | Remove-AzNetworkInterface
輸入 Y,並在出現提示時按 Enter 繼續。
刪除網路安全性群組:
Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName | Remove-AzNetworkSecurityGroup
輸入 Y,並在出現提示時按 Enter 繼續。
刪除公用 IP 位址:
Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName | Remove-AzPublicIpAddress
輸入 Y,並在出現提示時按 Enter 繼續。
刪除虛擬網路:
Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName | Remove-AzVirtualNetwork
輸入 Y,並在出現提示時按 Enter 繼續。
刪除受控 OS 磁碟:
Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name | Remove-AzDisk
輸入 Y,並在出現提示時按 Enter 繼續。
確認已移除所有資源:
檢查資源群組,以確保所有資源已移除:
Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Select-Object -Property Name, ResourceType, ResourceGroupName
當您以互動方式執行這些命令時,更好的方法是撰寫 PowerShell 指令碼。 指令碼可讓您在未來重複使用邏輯來建立或刪除 VM
接下來,讓我們看看如何使用 PowerShell 指令碼將這些工作自動化。