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

Завершено

Сложные или повторяющиеся задачи могут быть трудоемкими и подверженными ошибкам при выполнении вручную. Организации предпочитают автоматизировать эти задачи, чтобы сократить затраты и избежать ошибок.

Автоматизация важна в примере управления отношениями клиентов (CRM), где вы тестируете программное обеспечение на нескольких виртуальных машинах. Эти компьютеры могут быть постоянно удалены и повторно созданы. Использование скрипта Azure CLI для автоматизации создания виртуальной машины гораздо эффективнее и надежнее, чем создание виртуальных машин вручную каждый раз.

Помимо основной операции создания виртуальной машины скрипт должен соответствовать нескольким другим требованиям:

  • Создание нескольких виртуальных машин: создание az vm create нескольких уникальных именованных виртуальных машин.
  • Параметр группы ресурсов: разрешить скрипту принимать имя группы ресурсов в качестве параметра.

В этом уроке вы узнаете, как писать и выполнять скрипт Azure CLI в среде Bash, которая соответствует этим требованиям.

Что такое скрипт Azure CLI Bash?

Скрипт Azure CLI — это текстовый файл, содержащий команды и конструкции элементов управления. Скрипт выполняет ссылочные команды, а конструкции элементов управления — это функции программирования, такие как циклы, переменные, параметры, комментарии и т. д., предоставляемые Bash.

Файлы скриптов Azure CLI Bash имеют .sh расширение файла. Эти файлы можно создать и сохранить с помощью любого текстового редактора.

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

.\myScript.sh

Методы Bash

Bash включает функции, часто найденные на языках программирования. Для скрипта, на который вы фокусируетесь в этом упражнении, вы используете три ключевые функции: переменные, циклы и параметры.

Переменные

В Azure CLI при назначении значения переменной автоматически создается переменная. Например:

location="eastus"

Чтобы определить значение, хранящееся в переменной, используйте $ префикс и его имя:

echo $location

Циклы

Bash имеет несколько структур цикла, включая until, whileи for. Цикл for является хорошим выбором для сценариев, в которых необходимо выполнить цикл по набору значений в коллекции.

#!/bin/bash
for i in 1 2 3
do
   echo "Loop $i times"
done

Параметры

При создании скрипта Azure CLI можно добавить параметры в скрипт, а затем указать значения этих параметров при выполнении скрипта. Например:

.\setupEnvironment.sh parameter1 parameter2 parameter3

В скрипте зафиксировать значения в переменные. В этом примере параметры — loopCount и name:

#!/bin/bash

loopCount=3
name="msdocs"

for i in $(seq 1 $loopCount)
do
    loopName="loop $i for $name"
    echo $loopName
done

Выходные данные выглядят следующим образом.

loop 1 for msdocs
loop 2 for msdocs
loop 3 for msdocs

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

Пример сценария

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

#!/bin/bash
    
# Assign parameters to variables
vmCount=$1
adminUserPrefix=$2
shift 2
images=("$@")
    
# Loop 
for i in $(seq 1 $vmCount)
do
    let "randomIdentifier=$RANDOM*$RANDOM"
    resourceGroupName="msdocs-rg-$randomIdentifier"
    location="westus"
    adminUserName="msdocs-$randomIdentifier"
    vmName="msdocs-vm-$randomIdentifier"
    vmImage=${images[$((i-1)) % ${#images[@]}]}

    echo "Creating VM $vmName on $mvImage 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 \
        --admin-username $adminUserName \
        --name $vmName \
        --image $vmImage \
        --generate-ssh-keys

done

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

Сохраните скрипт как msdocs-script.sh и запустите его из командной строки Bash, указав необходимые параметры:

./msdocs-script.sh 3  Debian11 Debian11 Ubuntu2204

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