Упражнение. Создание ресурсов с помощью скрипта Azure CLI

Завершено

В этом уроке вы продолжите работу с примером компании, которая разрабатывает средства администрирования Linux. Цель — использовать виртуальные машины Linux, чтобы позволить потенциальным клиентам тестировать программное обеспечение. Если группа ресурсов уже настроена, пришло время создать виртуальные машины.

Ваша компания обеспечила стенд на большом торговом шоу Linux. Вы планируете настроить демонстрационную область с тремя терминалами, каждый из которых подключен к отдельной виртуальной машине Linux. Необходимо удалить виртуальные машины и повторно создать их в конце каждого дня, чтобы они начинались свежим каждый день. Создание виртуальных машин вручную после длительного дня подвержено ошибкам, поэтому для автоматизации процесса создания виртуальной машины необходимо написать скрипт Azure CLI.

Создание скрипта, создающего виртуальные машины

Выполните следующие действия, чтобы написать сценарий в Azure Cloud Shell, который автоматизирует создание виртуальных машин.

Примечание.

Обычно вы будете проходить проверку подлинности в Azure с помощью учетных az loginданных, но в Cloud Shell вы уже прошли проверку подлинности, поэтому этот шаг не требуется.

  1. Откройте Azure Cloud Shell с помощью портал Azure или с помощью кнопки Open Cloud Shell, расположенной в правом верхнем углу многих блоков кода Azure CLI.

  2. Настройка подписки Azure

    az account set --subscription "my subscription name or ID"
    
  3. При выборе текстового редактора сохраните следующий скрипт на локальный диск. В этом примере файл называется 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
    
    
  4. Отправьте файл на диск Cloud Shell. Самый простой способ — использовать пункт меню "Управление файлами ".

Выполнение скрипта

  1. Выполните скрипт с помощью следующей команды:

    #!/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  
    
  2. Ожидание завершения. Выполнение скрипта занимает несколько минут.

  3. Проверьте виртуальные машины. После завершения скрипта убедитесь, что он успешно завершен, перечислив виртуальные машины в группе ресурсов:

    az vm list -o table
    

    Вы увидите три виртуальных машины, каждая из которых имеет уникальное имя и отдельную группу ресурсов.

Вы успешно создали скрипт, который автоматизирует создание трех виртуальных машин, каждая из которых содержит определенную группу ресурсов, обеспечивая их готовность к ежедневным демонстрациям в торговом шоу. Хотя сценарий короткий и простой, он значительно ускоряет процесс, который в противном случае будет потреблять много времени и подвержен ошибок, если выполняется вручную через портал Azure.