Создание ресурсов 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 и создания виртуальной машины:

Снимок экрана: VS Code с скриптом PowerShell для создания виртуальной машины в Azure.

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

.\myScript.ps1

Методы PowerShell

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

Переменные

В PowerShell переменные объявляются с помощью знака доллара ($) и назначенных значений с помощью оператора equals (=). Например:

$location = 'eastus'

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

$location

Переменные могут содержать объекты. Например, следующее определение задает $adminCredential переменную для объекта, возвращаемого командлетом Get-Credential :

$adminCredential = Get-Credential

Циклы

PowerShell имеет несколько структур цикла, включая For, Foreach, Do-UntilDo-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.