Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Для объединения Azure DevTest Labs с конвейерами непрерывной поставки и непрерывной интеграции (CI/CD) Azure Pipelines можно использовать расширение Azure DevTest Labs Tasks. Расширение устанавливает несколько задач в Azure Pipelines, включая:
- Создание виртуальной машины.
- Создание пользовательского образа из виртуальной машины
- Удаление виртуальной машины
Эти задачи помогают, к примеру, быстро развернуть виртуальную машину с эталонного образа, запустить определенный тест и удалить виртуальную машину.
В этой статье показано, как использовать Azure DevTest Labs Tasks для создания и развертывания виртуальной машины, создания настраиваемого образа и удаления виртуальной машины в рамках одного конвейера выпуска. Эти задачи обычно выполняются по отдельности в собственных конвейерах сборки, тестирования и развертывания.
Приступить к использованию Azure DevTest Labs
Впервые работаете с Azure? Создайте бесплатную учетную запись Azure.
Уже используете Azure? Создайте первую лабораторию и начните работу с Azure DevTest Labs в минутах.
Предварительные условия
На портале Azure создайте тестовую службу DevTest Labs или используйте существующую.
Зарегистрируйтесь или войдите в организацию Azure DevOps Services, создайте проект или используйте существующий проект.
Установите расширение Azure DevTest Labs Tasks из Visual Studio Marketplace:
- Перейдите в раздел Задачи Azure DevTest Labs.
- Выберите Получить бесплатно.
- Выберите организацию Azure DevOps Services в раскрывающемся списке и нажмите кнопку Установить.
Создать шаблон для создания виртуальной машины для лаборатории
Сначала создайте шаблон Azure Resource Manager (ARM), который создает виртуальную машину тестовой службы по запросу.
- В тестовой службе на портале Azure выберите Добавить в верхней строке меню.
- На экране Выбор базы выберите базовый образ Windows для виртуальной машины.
- На экране Создание ресурса тестовой службы в разделе Артефакты выберите Добавить или удалить артефакты.
- На экране Добавление артефактов выполните поиск по запросу winrm, а затем щелкните стрелку рядом с пунктом Настройка WinRM.
- На панели Добавление артефакта введите полное доменное имя виртуальной машины, например
contosolab00000000000000.westus3.cloudapp.azure.com. Выберите ОК, затем выберите ОК еще раз. - Перейдите на вкладку Расширенные параметры и в поле IP-адрес выберите значение Общедоступный.
Примечание.
При использовании артефакта WinRM с общим IP-адресом необходимо добавить правило преобразования сетевых адресов (NAT) для сопоставления внешнего порта с портом WinRM. При создании виртуальной машины с общедоступным IP-адресом правило NAT не требуется. Для этой пошаговой инструкции создайте виртуальную машину с общедоступным IP-адресом.
- Выберите Просмотреть шаблон ARM.
- Скопируйте код шаблона и сохраните его как файл с именем CreateVMTemplate.json в локальной ветви системы управления версиями.
- Запишите шаблон в систему управления исходным кодом проекта.
Создайте скрипт для получения свойств виртуальной машины
Затем создайте скрипт для получения значений, которые используются в таких этапах выполнения задач, как, Копирование файлов Azure и PowerShell на целевых компьютерах, для развертывания приложений на виртуальных машинах. Эти задачи обычно используются для развертывания собственных приложений на виртуальных машинах Azure. Для выполнения задач необходимы такие значения, как имя группы ресурсов, IP-адрес и полное доменное имя виртуальной машины.
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Чтобы узнать, как перейти на модуль Az PowerShell, см. статью Перенос Azure PowerShell с AzureRM на Az.
Сохраните следующий скрипт под таким именем, как GetLabVMParams.ps1, и запишите его в систему управления исходным кодом проекта.
Param( [string] $labVmId)
$labVmComputeId = (Get-AzResource -Id $labVmId).Properties.ComputeId
# Get lab VM resource group name
$labVmRgName = (Get-AzResource -Id $labVmComputeId).ResourceGroupName
# Get the lab VM Name
$labVmName = (Get-AzResource -Id $labVmId).Name
# Get lab VM public IP address
$labVMIpAddress = (Get-AzPublicIpAddress -ResourceGroupName $labVmRgName -Name $labVmName).IpAddress
# Get lab VM FQDN
$labVMFqdn = (Get-AzPublicIpAddress -ResourceGroupName $labVmRgName -Name $labVmName).DnsSettings.Fqdn
# Set a variable labVmRgName to store the lab VM resource group name
Write-Host "##vso[task.setvariable variable=labVmRgName;]$labVmRgName"
# Set a variable labVMIpAddress to store the lab VM Ip address
Write-Host "##vso[task.setvariable variable=labVMIpAddress;]$labVMIpAddress"
# Set a variable labVMFqdn to store the lab VM FQDN name
Write-Host "##vso[task.setvariable variable=labVMFqdn;]$labVMFqdn"
Создание конвейера выпуска в Azure Pipelines
Далее создайте конвейер выпуска в Azure Pipelines. Задачи конвейера используют значения, которые вы присвоили виртуальной машине при создании шаблона ARM.
- На странице проекта Azure DevOps Services в области навигации слева выберите Конвейеры>Выпуски.
- Выберите Создать конвейер.
- В области "Выбор шаблона" выберите пустое задание.
- Закройте панель "Этап".
- На странице Новый конвейер выпуска откройте вкладку Переменные.
- Выберите Добавить и введите следующие пары Имени и Значения, выбирая Добавить после добавления каждого из них.
- vmName: имя виртуальной машины, назначенное в шаблоне ARM.
- userName— имя пользователя для доступа к виртуальной машине.
- password: пароль для имени пользователя. Используйте значок в виде замка для скрытия и защиты пароля.
Добавление артефакта
- На новой странице конвейера выпуска на вкладке "Конвейер" выберите " Добавить артефакт".
- На панели "Добавление артефакта" выберите Azure Repo.
- В списке проектов выберите проект DevOps.
- В списке источника (репозитория) выберите исходный репозиторий.
- В списке ветки по умолчанию выберите ветку для извлечения.
- Выберите Добавить.
Создание виртуальной машины DevTest Labs
Следующим шагом является создание виртуальной машины с "золотым образом" для использования в будущих развертываниях. На этом шаге используется задача создания виртуальной машины Azure DevTest Labs.
На странице нового конвейера выпуска на вкладке Конвейер выберите текст гиперссылки в поле Этап 1.
На панели слева щелкните значок плюса + рядом с элементом Задание агента.
В разделе Добавление задач в области справа выполните поиск и выберите Создание виртуальной машины Azure DevTest Labs, а затем щелкните Добавить.
На панели слева выберите задачу Создать виртуальную машину Azure DevTest Labs.
В области справа заполните форму следующим образом:
Подписка Azure RM: Выберите подключение к службе или подписку из раскрывающегося списка, и при необходимости нажмите Авторизовать.
Примечание.
Сведения о создании подключения к подписке Azure с более ограниченными разрешениями см. в разделе Конечная точка службы Azure Resource Manager.
Тестовая служба. Выберите имя тестовой службы DevTest Labs.
Имя виртуальной машины: переменная, указанная для имени виртуальной машины: $vmName.
Шаблон. Найдите и выберите файл шаблона, который вы записали в репозиторий проекта.
Файл параметров: если вы проверили файл параметров в репозитории, перейдите к нему и выберите его.
Переопределения параметров. Введите
-newVMName '$(vmName)' -userName '$(userName)' -password '$(password)'.Откройте раскрывающийся список Выходные переменные и в разделе Имя ссылки введите переменную для идентификатора созданной виртуальной машины (VM) лаборатории. Давайте введем vm в качестве ссылочного имени для простоты. labVmId будет атрибутом этой переменной и будет называться позже $vm.labVmId. Если вы используете любое другое имя, не забудьте использовать его соответствующим образом в последующих задачах.
Идентификатор виртуальной машины лаборатории будет иметь следующую форму:
/subscriptions/{subscription Id}/resourceGroups/{resource group Name}/providers/Microsoft.DevTestLab/labs/{lab name}/virtualMachines/{vmName}
Сбор сведений о виртуальной машине DevTest Labs
Далее конвейер выполняет скрипт, созданный ранее, для сбора подробных сведений о виртуальной машине DevTest Labs.
- На вкладке "Задачи" конвейера выпуска выберите знак + "плюс" рядом с заданием агента.
- В разделе Добавление задач в области справа выполните поиск и выберите элемент Azure PowerShell, а затем щелкните Добавить.
- На панели слева выберите задачу Azure PowerShell: FilePath.
- В правой области заполните форму следующим образом:
- Подписка Azure: выберите подключение к службе или подписку.
- Тип скрипта: выберите Путь к файлу скрипта.
-
Путь к сценарию: найдите и выберите скрипт PowerShell, который вы загрузили в репозиторий исходного кода. Для упрощения пути можно использовать встроенные свойства, например:
$(System.DefaultWorkingDirectory/Scripts/GetLabVMParams.ps1. - Аргументы скрипта: введите значение -labVmId $(vm.labVmId).
Скрипт собирает необходимые значения и сохраняет их в переменных среды в конвейере выпуска, так вы можете их просмотреть на последующих шагах.
Создание образа виртуальной машины на основе виртуальной машины DevTest Labs
Следующая задача создает образ только что развернутой виртуальной машины в вашей лаборатории. Образ можно использовать для создания копий виртуальной машины по требованию, чтобы выполнять задачи разработчиков или проводить тесты.
- На вкладке "Задачи" конвейера выпуска выберите знак + "плюс" рядом с заданием агента.
- В параметре Добавление задач выберите Azure DevTest Labs Create Custom Image и нажмите кнопку Добавить.
- В левой области выберите задачу Создать пользовательский образ Azure DevTest Labs.
- В правой области заполните форму следующим образом:
- Подписка Azure RM: выберите подключение к службе или подписку.
- Тестовая служба: выберите тестовую службу.
- Имя пользовательского образа: введите имя пользовательского образа.
- Описание: введите описание (необязательно), чтобы в дальнейшем облегчить выбор нужного образа.
- Исходная лабораторная ВМ: Исходная labVmId. Введите значение $(vm.labVmId).
- Выходные переменные: при необходимости можно изменить имя переменной идентификатора пользовательского образа по умолчанию.
Развертывание приложения на новой виртуальной машине DevTest Labs (необязательно)
Вы можете добавить задачи для развертывания приложения на новой виртуальной машине DevTest Labs. Если вы хотите только поэкспериментировать с созданием виртуальной машины DevTest Labs и пользовательского образа без развертывания приложения, то этот шаг можно пропустить.
Обычно для развертывания приложений используются задачи Копирование файлов Azure и PowerShell на целевых компьютерах. Информация о виртуальной машине, необходимая для работы с параметрами этих задач, хранится в трех переменных конфигурации под именамиlabVmRgName, labVMIpAddress и labVMFqdn в конвейере выпуска.
Удалите виртуальную машину
Последняя задача — удалить виртуальную машину, развернутую в вашей лаборатории. Обычно после выполнения задач разработки или выполнения тестов на развернутой виртуальной машины ее удаляют.
- На вкладке "Задачи" конвейера выпуска выберите знак + "плюс" рядом с заданием агента.
- В параметре Добавление задач выберите Azure DevTest Labs Delete VM и нажмите кнопку Добавить.
- Настройте задачу следующим образом:
- Подписка Azure RM: выберите подключение к службе или подписку.
- Тестовая служба: выберите тестовую службу.
- Виртуальная машина: введите значение $(vm.labVmId).
- Выходные переменные: поле Имя ссылки предназначено для ввода имени переменной labVmId по умолчанию, если оно было изменено. Значение по умолчанию — $(labVmId).
Сохранение конвейера выпуска
Для того чтобы сохранить новый конвейер выпуска:
- Выберите Новый конвейер выпуска в верхней части страницы с конвейером выпуска и введите новое имя для конвейера.
- Выберите Сохранить в верхнем правом углу.
Создание и запуск релиза
Чтобы создать и запустить выпуск с помощью нового конвейера:
- На странице конвейера выпуска вверху справа щелкните Создать выпуск;
- в разделе Артефакты выберите последнюю сборку и нажмите кнопку Создать.
На каждом этапе выпуска можно обновлять представление вашей лаборатории на портале Azure, чтобы увидеть создание виртуальной машины, создание образа и удаление виртуальной машины.
Вы можете использовать пользовательский образ для создания виртуальных машин всякий раз, когда это необходимо.