Создание ресурсов с помощью скрипта 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. В следующем уроке давайте создадим этот скрипт, чтобы включить дополнительные параметры и проверить успешное завершение.