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

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Среда Azure Pipelines — это группа ресурсов, предназначенных для развертываний из конвейера. Типичные среды включают разработку, тестирование или рабочую среду.

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

Примечание.

Среды Azure DevOps доступны только для конвейеров YAML. Для классических конвейеров группы развертывания предоставляют аналогичные функциональные возможности.

Необходимые компоненты

Для выполнения процедур, описанных в этой статье, необходимо выполнить следующие предварительные требования:

Создание среды и добавление виртуальной машины

Используйте следующую процедуру, чтобы добавить виртуальную машину или физический компьютер в среду.

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

  1. В проекте Azure DevOps перейдите в "Среды конвейеров>" и выберите "Создать среду" или "Создать среду".

  2. На экране "Новая среда " введите имя и необязательное описание.

  3. В разделе "Ресурс" выберите "Виртуальные машины" и нажмите кнопку "Далее".

    Снимок экрана: добавление среды.

Копирование скрипта регистрации

Скрипты агента для ресурсов виртуальных машин похожи на сценарии для локальных агентов и используют те же команды. Скрипты включают маркер личного доступа Azure DevOps (PAT) для пользователя, выполнившего вход, срок действия которого истекает через три часа после создания скрипта. Для установки агента требуется только PAT.

Примечание.

Чтобы настроить агент группы развертывания или при регистрации ресурса среды виртуальной машины, попробуйте задать область доступа PAT для всех доступных организаций в параметрах пользователей персональных>маркеров доступа.

  1. На экране ресурсов виртуальной машины выберите Linux в разделе "Операционная система".

  2. Щелкните значок, чтобы скопировать скрипт регистрации Linux.

    Снимок экрана: добавление виртуальной машины Linux.

Сценарий одинаков для всех виртуальных машин Linux, добавленных в среду. Дополнительные сведения об установке скрипта агента см. в разделе "Локальные агенты Linux".

Запуск скопированного скрипта регистрации на виртуальной машине

  1. Выберите Закрыть. Создается новая среда. Чтобы снова скопировать скрипт, например, если срок действия PAT истек, нажмите кнопку "Добавить ресурс " еще раз на странице среды.

    Снимок экрана: созданное сообщение о новой среде.

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

    Примечание.

    Если на виртуальной машине уже запущен другой агент, укажите уникальное имя нового agent для регистрации в среде.

  3. После регистрации виртуальной машины убедитесь, что она отображается на вкладке "Ресурсы " на странице среды Azure Pipelines.

    Снимок экрана: вкладка

Использование сред в конвейерах YAML

Ресурсы виртуальных машин можно использовать в заданиях развертывания YAML, ссылаясь на свою среду. Дополнительные сведения о заданиях развертывания YAML см. в разделе "Задания развертывания" и определение jobs.deployment в справочнике по схеме конвейеров YAML.

Следующее задание развертывания конвейера выполняется только на виртуальных машинах в VMEnv среде.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VMenv
  environment: VMenv
  strategy:
     runOnce:
        deploy:   
          steps:
            - script: echo "Hello world"

Для конкретной виртуальной машины в среде можно добавить имя ресурса виртуальной машины в имя среды. В следующем примере развертывается только ресурс виртуальной машины с именем RESOURCE-PC в VMenv среде.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to RESOURCE-PC in VMenv
  environment: VMenv.RESOURCE-PC  # only deploy to the VM resource named RESOURCE-PC
  strategy:
     runOnce:
        deploy:   
          steps:
            - script: echo "Hello world"

Вы также можете использовать полный синтаксис ключевого слова jobs-deployment-environment и развернуть на конкретных виртуальных машинах среды, перечислив их в resourceName.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to RESOURCE-PC in VMenv with full syntax
  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"

Примечание.

  • Такие resourceType значения чувствительны virtualMachine к регистру. Неправильное регистрирование не приводит к обнаружению подходящих ресурсов.
  • При повторном выполнении этапа развертывание повторно запускается на всех указанных виртуальных машинах, а не только на неудачных целевых объектах.

Стратегия развертывания

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

Permissions

При первом запуске конвейера, использующего среду, необходимо предоставить разрешение для всех запусков конвейера для доступа к пулу агентов и среде. Выберите символ ожидания рядом с заданием на экране запуска сводки конвейера, а затем нажмите кнопку "Разрешить предоставить необходимые разрешения".

Добавление тегов и управление ими

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

Количество тегов, которые можно применить к виртуальным машинам, не ограничено. Имена тегов ограничены 256 символами.

Вы можете применить или удалить теги, выбрав значок "Дополнительные действия " рядом с виртуальной машиной на вкладке "Ресурсы среды".

Снимок экрана: настройка тегов виртуальной машины в пользовательском интерфейсе.

При регистрации скрипта агента на виртуальной машине можно также применять теги в интерактивном режиме.

Снимок экрана: настройка тегов виртуальной машины в интерактивном скрипте.

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

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"

Просмотр истории развертывания

Перейдите на вкладку "Развертывания" на странице среды для полной трассировки фиксаций и рабочих элементов, а также журнала развертывания между конвейерами для каждой среды и ресурса.

Снимок экрана: представление

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

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

./config.sh remove