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

Завершено

В исходном сценарии необходимо создать виртуальные машины (виртуальные машины) для тестирования программного обеспечения управления отношениями клиентов (CRM). Когда новая сборка доступна, необходимо развернуть новую виртуальную машину для тестирования всего процесса установки из чистого образа. После завершения тестирования можно удалить виртуальную машину.

Давайте попробуем создать виртуальную машину.

Создание виртуальной машины Linux с помощью Azure PowerShell

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

Вот как создать новую виртуальную машину Azure с помощью Azure PowerShell:

  1. Используйте командлет для создания виртуальной New-AzVM машины.

    • Укажите группу ресурсов песочницы: [имя группы ресурсов песочницы].

    • Назовите виртуальную машину, следуя стандартам именования вашей организации.

    • Выберите расположение, близкое к вам из списка доступных расположений песочницы Azure.

      • westus2
      • southcentralus
      • centralus
      • eastus
      • westeurope
      • southeastasia
      • japaneast
      • brazilsouth
      • australiasoutheast
      • centralindia
    • Используйте образ Ubuntu Linux: Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest

    • Get-Credential Используйте командлет, чтобы задать учетные данные администратора виртуальной машины.

    • Добавьте параметр OpenPorts с портом 22 для доступа к SSH.

    • Создайте имя общедоступного IP-адреса для входа в SSH.

    $azVmParams = @{
        ResourceGroupName   = '<rgn>[sandbox resource group name]</rgn>'
        Name                = 'testvm-eus-01'
        Credential          = (Get-Credential)
        Location            = 'eastus'
        Image               = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts           = 22
        PublicIpAddressName = 'testvm-eus-01'
    }
    New-AzVm @azVmParams
    

    Совет

    Чтобы скопировать команду в буфер обмена, нажмите кнопку Копировать. Для вставки щелкните правой кнопкой мыши новую строку в терминале Cloud Shell и выберите команду Вставить или нажмите клавиши SHIFT+INSERT (⌘+V в macOS).

  2. Введите учетные данные:

    При появлении запроса введите имя пользователя и пароль, следуя рекомендациям: пароли должны иметь длину 12–123 символов и соответствовать трем из следующих четырех требований сложности: строчные символы, прописные символы, цифры и специальные символы (regex match [\W_]). Дополнительные сведения см. в разделе часто задаваемые вопросы о виртуальной машине Linux.

  3. Дождитесь создания виртуальной машины:

    Процесс создания виртуальной машины занимает несколько минут.

  4. Запросите виртуальную машину:

    По завершении выполните запрос виртуальной машины и назначьте объект виртуальной машины переменной ($vm).

    $vm = Get-AzVM -Name testvm-eus-01 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    
  5. Просмотр сведений о виртуальной машине:

    Чтобы просмотреть сведения о виртуальной машине, отобразите содержимое переменной.

    $vm
    

    Пример результата:

    ResourceGroupName : <rgn>[sandbox resource group name]</rgn>
    Id                : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rgn>[sandbox resource group name]</rgn>/providers/Microsoft.Compute/virtualMachines/testvm-eus-01
    VmId              : 00000000-0000-0000-0000-000000000000
    Name              : testvm-eus-01
    Type              : Microsoft.Compute/virtualMachines
    Location          : eastus
    Tags              : {}
    HardwareProfile   : {VmSize}
    NetworkProfile    : {NetworkInterfaces}
    OSProfile         : {ComputerName, AdminUsername, LinuxConfiguration, Secrets}
    ProvisioningState : Succeeded
    StorageProfile    : {ImageReference, OsDisk, DataDisks}
    ...
    
  6. Проверка свойств виртуальной машины:

    Сложные объекты можно проверить с помощью оператора доступа к членам (.). Например, чтобы просмотреть свойства объекта, связанного VMSize с разделом HardwareProfile , выполните следующую команду:

    $vm.HardwareProfile
    

    Или, чтобы получить сведения для одного из дисков, выполните следующую команду:

    $vm.StorageProfile.OsDisk
    
  7. Получение доступных размеров виртуальных машин:

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

    $vm | Get-AzVMSize
    
  8. Получите общедоступный IP-адрес:

    Получите общедоступный IP-адрес для подключения к виртуальной машине и сохраните его в переменной.

    $ip = Get-AzPublicIpAddress -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -Name testvm-eus-01
    
  9. Подключитесь к виртуальной машине:

    Подключитесь к виртуальной машине с помощью SSH с помощью IP-адреса из переменной. Например, если имя пользователя имеется bob, используйте следующую команду:

    ssh bob@$($ip.IpAddress)
    

    Выйдите, введя выход.

Удаление виртуальной машины

Чтобы попробовать дополнительные команды, давайте удалим виртуальную машину. Выполните следующие действия:

  1. Завершение работы виртуальной машины:

    Выполните следующую команду:

    Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
    

    Введите Y и нажмите клавишу ВВОД, когда появится запрос на продолжение.

  2. Удалите виртуальную машину:

    После остановки виртуальной Remove-AzVM машины удалите ее, выполнив командлет.

    Remove-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
    

    Введите Y и нажмите клавишу ВВОД, когда появится запрос на продолжение.

  3. Список всех ресурсов в группе ресурсов:

    Get-AzResource Используйте командлет для перечисления всех ресурсов в группе ресурсов. Результаты передаются для Select-Object возврата определенных свойств:

    Get-AzResource -ResourceGroupName $vm.ResourceGroupName | 
        Select-Object -Property Name, ResourceType, ResourceGroupName
    

    Вы увидите несколько ресурсов, включая диски, виртуальные сети и т. д., которые по-прежнему существуют:

    Name                    ResourceType                            ResourceGroupName
    ----                    ------------                            -----------------
    cloudshell              Microsoft.Storage/storageAccounts       <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/virtualNetworks       <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/publicIPAddresses     <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/networkSecurityGroups <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/networkInterfaces     <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01_OsDisk_1  Microsoft.Compute/disks                 <rgn>[sandbox resource group name]</rgn>
    

    Команда Remove-AzVM удаляет только виртуальную машину. Она не удаляет какие-либо другие ресурсы. Чтобы вручную очистить их, выполните следующие действия.

  4. Удалим сетевой интерфейс.

    Get-AzNetworkInterface -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name |
        Remove-AzNetworkInterface
    

    Введите Y и нажмите клавишу ВВОД, когда появится запрос на продолжение.

  5. Удалим группу безопасности сети.

    Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzNetworkSecurityGroup
    

    Введите Y и нажмите клавишу ВВОД, когда появится запрос на продолжение.

  6. Удалите общедоступный IP-адрес:

    Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzPublicIpAddress
    

    Введите Y и нажмите клавишу ВВОД, когда появится запрос на продолжение.

  7. Удаление виртуальной сети:

    Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzVirtualNetwork
    

    Введите Y и нажмите клавишу ВВОД, когда появится запрос на продолжение.

  8. Удалите управляемые диски ОС:

    Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name |
        Remove-AzDisk
    

    Введите Y и нажмите клавишу ВВОД, когда появится запрос на продолжение.

  9. Убедитесь, что все ресурсы удалены:

    Проверьте группу ресурсов, чтобы убедиться, что все ресурсы удалены:

    Get-AzResource -ResourceGroupName $vm.ResourceGroupName | 
        Select-Object -Property Name, ResourceType, ResourceGroupName
    

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

Далее давайте рассмотрим, как автоматизировать эти задачи с помощью скрипта PowerShell.