練習 - 使用 Azure CLI 指令碼建立資源
在此單元中,您會繼續進行開發 Linux 系統管理工具的公司範例。 目標是使用 Linux 虛擬機器 (VM),讓潛在客戶可測試您的軟體。 設定好資源群組之後,即可建立 VM 了。
您的公司在大型 Linux 商展上獲得了一個攤位。 您計畫設定一個有三個終端機的示範區域,每個終端機會連線到不同的 Linux VM。 每天結束時,您必須刪除並重新建立 VM,以在每天早上有全新的開始。 經過一整天的手動建立 VM 很容易出錯,因此您需要編寫 Azure CLI 指令碼,來自動執行 VM 建立流程。
注意
此練習為選擇性項目。 如果您想要完成此練習,您必須先建立 Azure 訂用帳戶,才能開始。 如果您沒有 Azure 帳戶,或目前不想建立帳戶,您可以閱讀指示,以便瞭解所呈現的資訊。
撰寫指令碼以建立虛擬機器
請依照下列步驟在 Azure Cloud Shell 中撰寫指令碼,以自動建立虛擬機器。
注意
您通常需要使用認證和 az login 向 Azure 進行驗證,但在 Cloud Shell 中,您已經過驗證,因此無需執行此步驟。
透過 Azure 入口網站或使用位於許多 Azure CLI 程式碼區塊右上角的 [開啟 Cloud Shell] 按鈕,即可開啟 Azure Cloud Shell。
設定 Azure 訂用帳戶
az account set --subscription "my subscription name or ID"使用您選擇的文字編輯器,將下列指令碼儲存至本機磁碟。 在這個範例中,檔案名為
msdocs-script-expanded.sh。#!/bin/bash # Assign parameters to variables vmCount=$1 resourceGroupPrefix=$2 location=$3 vmNamePrefix=$4 adminUserPrefix=$5 shift 5 images=("$@") # Loop for i in $(seq 1 $vmCount) do let "randomIdentifier=$RANDOM*$RANDOM" resourceGroupName=$resourceGroupPrefix-$randomIdentifier location=westus adminUserName=$adminUserPrefix-$randomIdentifier vmName=$vmNamePrefix-$randomIdentifier vmImage=${images[$((i-1)) % ${#images[@]}]} echo "Creating VM $vmName on $vmImage with admin $adminUserName in resource group $resourceGroupName" # create the resource group az group create --name $resourceGroupName --location $location # create the VM az vm create \ --resource-group $resourceGroupName \ --location $location \ --name $vmName \ --generate-ssh-keys \ --admin-username $adminUserName \ --image $vmImage done將此檔案上傳至 Cloud Shell 磁碟。 最簡單的方式是使用 [管理檔案] 功能表選項。
執行指令碼
使用下列命令執行指令碼:
#!/bin/bash # make your file executable chmod +x msdocs-script-expanded.sh # remove Windows line continuation characters sed -i -e 's/\r$//' msdocs-script-expanded.sh # Run the script ./msdocs-script-expanded.sh 3 msdocs-rg eastus2 msdocsvm msdocsadmin Debian11 Debian11 Ubuntu2204等候完成。 指令碼需要幾分鐘才能完成。
驗證 VM。 指令碼完成後,請列出資源群組中的 VM,以驗證是否已順利完成:
az vm list -o table您應該會看到三個 VM,每個 VM 都有唯一的名稱,且位於個別的資源群組中。
您已成功建立指令碼,可自動建立三個 VM,每個 VM 都位於特定資源群組中,請確保其已準備就緒可在商展中進行每日示範。 雖然指令碼簡短易懂,但卻大幅加快了流程的速度,否則若透過 Azure 入口網站手動執行該流程,可能會非常耗時且容易出錯。