Создание ресурсов Azure с помощью Azure PowerShell с помощью скрипта
Сложные или повторяющиеся задачи могут быть трудоемкими и подверженными ошибкам при выполнении вручную. Организации предпочитают автоматизировать эти задачи, чтобы сократить затраты и избежать ошибок.
Автоматизация важна в примере управления отношениями клиентов (CRM), где вы тестируете программное обеспечение на нескольких виртуальных машинах Linux, которые необходимо постоянно удалять и повторно создавать. Использование скрипта PowerShell для автоматизации создания виртуальной машины гораздо эффективнее и надежнее, чем каждый раз при создании вручную.
Помимо основной операции создания виртуальной машины скрипт должен соответствовать нескольким другим требованиям:
- Создание нескольких виртуальных машин: создание
New-AzVM
нескольких уникальных именованных виртуальных машин. - Параметр группы ресурсов: разрешить скрипту принимать имя группы ресурсов в качестве параметра.
В этом уроке вы узнаете, как писать и выполнять скрипт PowerShell, соответствующий этим требованиям.
Что такое сценарий PowerShell?
Сценарий PowerShell — это текстовый файл, содержащий команды и управляющие конструкции. Команды представляют собой вызовы командлетов, а конструкции элементов управления — это функции программирования, такие как циклы, переменные, параметры, комментарии и т. д., предоставляемые PowerShell.
Файлы скриптов PowerShell имеют .ps1
расширение файла. Эти файлы можно создать и сохранить с помощью любого текстового редактора.
Совет
Если вы пишете скрипты PowerShell, рассмотрите возможность использования Visual Studio Code (VS Code), который является бесплатным и поддерживаемым в Windows, Linux и macOS. Расширение PowerShell для VS Code предлагает такие функции, как выделение синтаксиса и список доступных командлетов.
На следующем снимке экрана показан пример VS Code с примером скрипта для подключения к Azure и создания виртуальной машины:
После создания скрипта его можно выполнить из командной строки PowerShell, передав имя файла перед точкой текущего каталога и обратную косую черту:
.\myScript.ps1
Методы PowerShell
PowerShell включает функции, часто найденные на языках программирования. Вы можете определять переменные, использовать ветви и циклы, записывать параметры командной строки, записывать функции, добавлять комментарии и многое другое. Для скрипта, на который вы фокусируетесь, требуются три ключевых компонента: переменные, циклы и параметры.
Переменные
В PowerShell переменные объявляются с помощью знака доллара ($
) и назначенных значений с помощью оператора equals (=
). Например:
$location = 'eastus'
Чтобы определить значение, хранящееся в переменной, используйте $
префикс и его имя:
$location
Переменные могут содержать объекты. Например, следующее определение задает $adminCredential
переменную для объекта, возвращаемого командлетом Get-Credential
:
$adminCredential = Get-Credential
Циклы
PowerShell имеет несколько структур цикла, включая For
, Foreach
, Do-Until
Do-While
и While
. Цикл Foreach
является хорошим выбором для сценариев, в которых необходимо выполнить цикл по набору значений в коллекции.
$items = 'web','app','sql'
foreach ($item in $items) {
$item
}
Параметры
При создании скрипта PowerShell можно добавить параметры в скрипт, а затем указать значения этих параметров при выполнении скрипта. Например:
.\setupEnvironment.ps1 -Name 'web','app','sql' -Location eastus
В скрипте зафиксировать значения в переменные. В этом примере параметры : "Имя " и "Расположение":
param (
[string[]]$Name,
[string]$Location
)
Эти параметры можно использовать в качестве входных данных и цикла для создания набора виртуальных машин на основе заданных параметров. Этот подход сохраняет универсальный сценарий и избегает повторения одного и того же кода.
Объединение методов
Сочетание функций языка PowerShell и командлетов Azure PowerShell предоставляет все необходимые средства для автоматизации задач Azure. В примере CRM можно создать несколько виртуальных машин Linux с помощью параметризованного скрипта и цикла для упрощения процесса. Этот скрипт позволяет выполнять сложную операцию на одном шаге.
Пример сценария
Ниже приведен пример скрипта, демонстрирующего использование переменных, циклов и параметров для создания нескольких виртуальных машин:
param (
[string[]]$Name = 'web','app','sql',
[string]$ResourceGroupName,
[string]$Location = 'eastus'
)
$adminCredential = Get-Credential
foreach ($vm in $Name) {
$azVmParams = @{
ResourceGroupName = $ResourceGroupName
Name = $vm
Credential = $adminCredential
Location = $Location
Image = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
OpenPorts = 22
PublicIpAddressName = $vm
}
New-AzVM @azVmParams
}
Выполнение сценария
Сохраните скрипт как CreateVMs.ps1
и запустите его из командной строки PowerShell, указав необходимые параметры:
.\CreateVMs.ps1 -ResourceGroupName <resource-group-name>
С помощью этого скрипта можно эффективно создавать несколько виртуальных машин в разных группах ресурсов, автоматизировать повторяющиеся задачи и обеспечить согласованность в среде Azure.