练习 - 使用 Azure CLI 脚本创建资源
在本单元中,你将继续使用开发 Linux 管理员工具的公司示例。 目标是使用 Linux 虚拟机 (VM) 允许潜在客户测试软件。 已设置一个资源组,是时候创建 VM 了。
贵公司在大型 Linux 贸易展览会上获得了一个展位。 你计划在演示区配设三台终端机,每台与单独的 Linux VM 进行连接。 你必须在每天结束时删除 VM,再重新创建它们,使其每天早上焕然一新。 忙碌一天后手动创建 VM 容易出错,因此需要编写 Azure CLI 脚本来自动执行 VM 创建过程。
编写用于创建虚拟机的脚本
按照以下步骤在 Azure Cloud Shell 中编写脚本,以自动创建虚拟机。
注意
通常,使用具有 az login
的凭据向 Azure 进行身份验证,但在 Cloud Shell 中,已进行身份验证,因此不需要执行此步骤。
通过 Azure 门户或使用位于许多 Azure CLI 代码块右上角的“Open 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 门户手动执行会既耗时又容易出错的流程。