Управление ресурсами виртуальной машины в средах
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
В этой статье описывается использование ресурсов виртуальной машины в средах для управления развертываниями Azure Pipelines на нескольких компьютерах. Вы также можете установить агенты на собственных серверах для последовательного развертывания.
Ресурсы виртуальных машин могут существовать в средах, таких как разработка, тестирование или рабочая среда. После определения среды можно добавить виртуальные машины в целевой объект с помощью развертываний. Журнал развертывания среды обеспечивает трассировку от каждой виртуальной машины к конвейеру.
Необходимые компоненты
- Доступ к исходному репозиторию, подключенного к конвейеру.
- Доступ и разрешение на скачивание и запуск исполняемых скриптов на виртуальных машинах, которые требуется подключить к среде.
- Разрешения администратора проекта или администратора сборки в проекте Azure DevOps, содержащего среду. Дополнительные сведения см. в разделе "Ресурсы безопасности конвейера".
- Роль администратора для пула развертывания или набор целевых серверов, доступных для организации. Дополнительные сведения см. в разделе "Пул развертывания" и "Разрешения среды".
Примечание.
Чтобы настроить агент группы развертывания или при регистрации ресурса среды виртуальной машины, убедитесь, что для личной области маркера доступа (PAT) задано значение "Все доступные организации".
Создание среды
Используйте следующую процедуру, чтобы добавить ресурс виртуальной машины в среду. Для настройки физических компьютеров можно использовать тот же процесс.
Добавление ресурса виртуальной машины
В проекте Azure DevOps перейдите в "Среды конвейеров>" и выберите "Создать среду" или "Создать среду".
На первом экране "Создать среду " добавьте имя и необязательное описание.
В разделе "Ресурс" выберите "Виртуальные машины" и нажмите кнопку "Далее".
Копирование скрипта регистрации
Скрипты агента для ресурсов виртуальных машин похожи на сценарии для локальных агентов и используют те же команды. Скрипты включают маркер личного доступа Azure DevOps (PAT) для пользователя, выполнившего вход, срок действия которого истекает через три часа после создания скрипта.
На следующем экране "Новая среда " выберите Linux в разделе "Операционная система".
Скопируйте скрипт регистрации Linux.
Сценарий одинаков для всех виртуальных машин Linux, добавленных в среду. Дополнительные сведения об установке скрипта агента см. в разделе "Локальные агенты Linux".
Запуск скопированного скрипта
Нажмите кнопку "Закрыть" и обратите внимание, что создается новая среда. Чтобы снова скопировать скрипт, например, если срок действия PAT истекает, нажмите кнопку "Добавить ресурс".
Запустите скопированный скрипт на каждой целевой виртуальной машине, которую требуется зарегистрировать в среде.
Примечание.
Если на виртуальной машине уже запущен другой агент, укажите уникальное имя агента для регистрации в среде.
После регистрации виртуальной машины он отображается как ресурс на вкладке "Ресурсы " среды.
Использование виртуальных машин в конвейерах
В конвейере YAML вы можете нацелить виртуальные машины, ссылаясь на свою среду. По умолчанию задание предназначено для всех виртуальных машин, зарегистрированных для этой среды resourceName
.
Примечание.
При повторном выполнении этапа развертывание повторно запускается на всех виртуальных машинах, а не только на неудачных целевых объектах.
trigger:
- main
pool:
vmImage: ubuntu-latest
jobs:
- deployment: VMDeploy
displayName: Deploy to VM
environment:
name: VMenv
resourceName: VMenv
resourceType: virtualMachine
strategy:
runOnce:
deploy:
steps:
- script: echo "Hello world"
Примечание.
Такие resourceType
значения чувствительны virtualMachine
к регистру. Неправильное регистрирование не приводит к обнаружению подходящих ресурсов.
Вы можете развернуть на определенных виртуальных машинах в среде, указав их в resourceName
. В следующем примере развертывается только ресурс виртуальной машины с именем RESOURCE-PC
в VMenv
среде.
trigger:
- main
pool:
vmImage: ubuntu-latest
jobs:
- deployment: VMDeploy
displayName: Deploy to VM
environment:
name: VMenv
resourceType: virtualMachine
resourceName: RESOURCE-PC # only deploy to the VM resource named RESOURCE-PC
strategy:
runOnce:
deploy:
steps:
- script: echo "Hello world"
Дополнительные сведения о заданиях развертывания конвейера YAML см. в схеме конвейеров YAML.
Добавление тегов и управление ими
Теги — это способ назначения определенного набора виртуальных машин в среде для развертывания. Теги ограничены 256 символами. Количество тегов, которые можно использовать, не ограничено.
Теги или теги для виртуальных машин можно добавить в скрипт интерактивной регистрации или через пользовательский интерфейс, выбрав дополнительные действия для ресурса виртуальной машины.
Если указать несколько тегов, конвейер использует только виртуальные машины, которые включают все теги. В следующем примере используются только виртуальные машины, имеющие оба windows
prod
и тега. Виртуальные машины, имеющие только один или ни один из тегов, не предназначены.
trigger:
- main
pool:
vmImage: ubuntu-latest
jobs:
- deployment: VMDeploy
displayName: Deploy to VM
environment:
name: VMenv
resourceType: virtualMachine
tags: windows,prod # only deploy to VMs with both windows and prod tags
strategy:
runOnce:
deploy:
steps:
- script: echo "Hello world"
Применение стратегии развертывания
Вы можете применить развертывание strategy
, чтобы определить способ развертывания приложения. Виртуальные машины поддерживают как стратегии, так runOnce
и rolling
стратегии. Дополнительные сведения о стратегиях развертывания и перехватчиках жизненного цикла см . в стратегиях развертывания.
Просмотр истории развертывания
Перейдите на вкладку "Развертывания" для полной трассировки фиксаций и рабочих элементов, а также журнал развертывания между конвейерами для каждой среды и ресурса.
Удаление виртуальной машины из среды
Чтобы удалить виртуальную машину из среды Linux, выполните следующую команду на каждом компьютере.
./config.sh remove