練習 - 建立虛擬機器
讓我從最明顯的工作開始著手:建立「Azure 虛擬機器」。
登入、訂閱及資源群組
您將在右邊的 Azure Cloud Shell 中工作。 在您啟用沙箱之後,將會使用 Microsoft Learn 管理的免費訂用帳戶來登入 Azure。 您無須自行登入 Azure 或選取訂用帳戶,因為系統會為您執行這些動作。 通常,您還會建立資源群組來保存新資源。 在此課程模組中,Azure 沙箱會為您建立一個將用來執行所有命令的資源群組。
使用 Azure CLI 來建立 Linux VM
Azure CLI 包含能與 Azure 中虛擬機器搭配運作的 vm
命令。 我們可以提供數個子命令來執行特定的工作。 最常見的包括:
子命令 | 描述 |
---|---|
create |
建立新的虛擬機器 |
deallocate |
解除配置虛擬機器 |
delete |
刪除虛擬機器 |
list |
列出您訂閱中已建立的虛擬機器 |
open-port |
開啟供輸入流量使用的特定網路連接埠 |
restart |
重新啟動虛擬機器 |
show |
取得虛擬機器的詳細資料 |
start |
啟動停止的虛擬機器 |
stop |
停止正在執行的虛擬機器 |
update |
更新虛擬機器的屬性 |
注意
如需完整的命令清單,您可以查看 Azure CLI 參考文件。
讓我們從第一個開始:az vm create
。 您可以使用此命令在資源群組中建立虛擬機器。 您可以略過數個參數,以設定新 VM 的所有層面。 您必須提供的四個參數如下:
參數 | 描述 |
---|---|
--resource-group |
將擁有虛擬機器的資源群組;使用 |
--name |
虛擬機器的名稱;在資源群組內必須是唯一的。 |
--image |
要用來建立 VM 的作業系統映像。 |
--location |
要用來放置 VM 的區域。 通常,這會是接近 VM 取用者的位置。 |
此外,新增 --verbose
旗標有助於在建立 VM 時查看進度。
建立 Linux 虛擬機器
讓我們建立新的 Linux 虛擬機器。 在 Azure Cloud Shell 中執行下列命令,以在 美國西部位置建立 Ubuntu VM。
az vm create \
--resource-group "<rgn>[sandbox resource group name]</rgn>" \
--location westus \
--name SampleVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys \
--verbose
提示
您可以使用 [複製] 按鈕將命令複製到剪貼簿。 要貼上命令,請在 Cloud Shell 終端中,以滑鼠右鍵按一下新行,然後選取 [貼上],或使用 Shift+Insert 鍵盤快速鍵 (在 macOS 上為 ⌘+V)。
此命令會以名稱 SampleVM
建立一部新的 Ubuntu Linux 虛擬機器。 請注意,建立 VM 時,Azure CLI 工具會等待。 您可以新增 --no-wait
選項來告知 Azure CLI 工具立即返回,而讓 Azure 在背景中繼續建立 VM。 如果您在指令碼中執行命令,這會相當有用。
我們會透過 --admin-username
旗標,將系統管理員帳戶名稱指定為 azureuser
。 如果您省略這個步驟,az vm create
命令將會使用您「目前的使用者名稱」。 由於每個作業系統的帳戶名稱規則都不相同,所以指定特定名稱會是比較安全的作法。
注意
大部分的映像不允許 "root" 和 "admin" 等常見的名稱。
我們也會使用 generate-ssh-keys
旗標。 Linux 散發套件會使用此參數,並且會建立一對安全性金鑰,以便我們可以使用 ssh
工具從遠端存取虛擬機器。 這兩個檔案均會放入您電腦和 VM 的 .ssh
資料夾。 如果目標資料夾中已有名為 id_rsa
的 SSH 金鑰,則會使用該 SSH 金鑰,而不是產生新的金鑰。
Azure CLI 建立 VM 之後,您就會收到 JSON 回應,其中包含目前的虛擬機器狀態,及其由 Azure 指派的公用和私人 IP 位址:
{
"fqdns": "",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/Learn-bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/providers/Microsoft.Compute/virtualMachines/SampleVM",
"location": "westus",
"macAddress": "00-0D-3A-58-F8-45",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "40.83.165.85",
"resourceGroup": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
"zones": ""
}