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

Завершено

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

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

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

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

Примечание.

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

  1. Перейдите в домашнюю папку:

    Set-Location -Path $HOME
    
  2. Создайте файл скрипта PowerShell:

    New-Item -Name ConferenceDailyReset.ps1 -ItemType File
    
  3. Откройте встроенный редактор Visual Studio Code (VS Code):

    code ./ConferenceDailyReset.ps1
    

    Совет

    Встроенный редактор Cloud Shell также поддерживает vim, nano и emacs, если вы предпочитаете использовать один из этих редакторов.

  4. Определите параметр для имени группы ресурсов:

    Добавьте следующую строку в скрипт:

    param (
        [string]$ResourceGroupName
    )
    
  5. Запрос учетных данных администратора виртуальной машины:

    $adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'
    
  6. Создайте цикл для выполнения три раза:

    $vms = 'web','app','sql'
    foreach ($vm in $vms) {
        $vm
    }
    
  7. В цикле верните имя для каждой виртуальной машины:

    Write-Output "Creating VM: $vm"
    
  8. Создайте виртуальную машину с помощью переменной $vm :

    $azVmParams = @{
        ResourceGroupName = $ResourceGroupName
        Name              = $vm
        Credential        = $adminCredential
        Image             = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts         = 22
    }
    New-AzVm @azVmParams
    
  9. Сохраните файл:

    Чтобы сохранить скрипт, используйте контекстное меню с многоточием (...) в правом верхнем углу редактора или сочетания клавиш CTRL + S.

Завершенный скрипт

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

param (
    [string]$ResourceGroupName
)

$adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'

$vms = 'web','app','sql'

foreach ($vm in $vms) {

    Write-Output "Creating VM: $vm"

    $azVmParams = @{
        ResourceGroupName = $ResourceGroupName
        Name              = $vm
        Credential        = $adminCredential
        Image             = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts         = 22
    }
    New-AzVm @azVmParams
}

Убедившись, что скрипт выглядит как код в предыдущем примере, закройте редактор с помощью контекстного меню (...) в правом верхнем углу редактора или сочетания клавиш CTRL + Q.

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

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

    ./ConferenceDailyReset.ps1 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    
  2. Ожидание завершения. Выполнение скрипта занимает несколько минут.

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

    Get-AzVM -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    

    Вы должны увидеть три виртуальные машины с уникальными именами.

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