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

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

Используйте ресурсы виртуальной машины для управления развертываниями на нескольких компьютерах с помощью конвейеров YAML. Ресурсы виртуальных машин позволяют устанавливать агенты на собственных серверах для последовательного развертывания.

Ресурсы виртуальных машин подключаются к средам. После определения среды можно добавить виртуальные машины в целевой объект с помощью развертываний. Представление журнала развертывания в среде обеспечивает трассировку от виртуальной машины к конвейеру.

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

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

  • репозиторий, подключенный к конвейеру
  • виртуальная машина, которую требуется подключить к среде

Дополнительные сведения о безопасности azure Pipelines см. в разделе "Ресурсы безопасности конвейера".

Чтобы добавить виртуальную машину в среду, необходимо иметь роль Администратор istrator для соответствующего пула развертывания. Пул развертывания — это набор целевых серверов, доступных для организации. Дополнительные сведения о пуле развертывания и разрешениях среды.

Примечание.

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

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

Примечание.

Этот же процесс можно использовать для настройки физических компьютеров с помощью скрипта регистрации.

Первым шагом при добавлении ресурса виртуальной машины является определение среды.

Определение среды

  1. Выберите "Создать среду" или "Создать среду" в зависимости от того, является ли она первой средой.
  2. Добавьте имя (обязательно) для среды и описание.
  3. Сохраните новую среду.

Добавить ресурс

  1. Выберите среду и нажмите кнопку "Добавить ресурс".

  2. Выберите виртуальные машины для типа ресурса . Затем выберите Далее.

    Add an environment.

  3. Выберите Windows или Linux для операционной системы.

  4. Скопируйте скрипт регистрации. Сценарий будет скриптом PowerShell, если вы выбрали Windows и сценарий Linux, если вы выбрали Linux.

    Add a virtual machine.

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

    • Если вы устанавливаете в Windows, вам потребуется запустить сценарий в качестве администратора PowerShell.
    • Если вы устанавливаете в Linux, вам потребуется разрешение на скачивание и запуск исполняемых скриптов.

    Примечание.

    • Личный маркер доступа (PAT) для пользователя, вошедшего в систему, включается в скрипт. Срок действия PAT истекает в день создания скрипта.
    • Если на виртуальной машине уже запущен любой другой агент, укажите уникальное имя агента для регистрации в среде.
    • Дополнительные сведения об установке скрипта агента см. в разделе "Локальные агенты Linux" и "Локальные агенты Windows". Скрипты агента для ресурсов виртуальной машины похожи на скрипты для локальных агентов, и вы можете использовать те же команды.
  6. После регистрации виртуальной машины он отображается как ресурс среды на вкладке "Ресурсы " среды.

  7. Чтобы добавить дополнительные виртуальные машины, скопируйте скрипт еще раз. Выберите "Добавить виртуальные машины ресурсов>". Скрипты Windows и Linux одинаковы для всех виртуальных машин, добавленных в среду.

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

    View resources.

Использование виртуальной машины в конвейерах

Целевые виртуальные машины в конвейере, ссылаясь на среду. По умолчанию задание конвейера выполняется для всех виртуальных машин, определенных для среды.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 чувствительны к регистру. Указание неправильного регистра приведет к тому, что в среде отсутствуют соответствующие ресурсы. Дополнительные сведения см. в схеме YAML.

Чтобы получить развертывание, можно выбрать определенную виртуальную машину из среды, указав ее.resourceName Например, для целевого развертывания только в ресурсе виртуальной машины, именованном USHAN-PC в VMenv среде, добавьте resourceName параметр и присвойте ему значение USHAN-PC.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
    name: VMenv
    resourceType: virtualMachine
    resourceName: USHAN-PC # only deploy to the VM resource named USHAN-PC
  strategy:
    runOnce:
      deploy:   
          steps:
          - script: echo "Hello world"

Дополнительные сведения о заданиях развертывания см. в схеме YAML.

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

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

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

Set VM tags.

При выборе нескольких тегов виртуальные машины, содержащие все теги, которые используются в конвейере. Например, этот конвейер предназначен для виртуальных машин с тегами и prod виртуальными windows машинами. Если у виртуальной машины есть только один из этих тегов, он не предназначен.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
    name: VMenv
    resourceType: virtualMachine
    tags: windows,prod # only deploy to virtual machines with both windows and prod tags
  strategy:
    runOnce:
      deploy:   
          steps:
          - script: echo "Hello world"

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

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

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

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

VMDeployments_view

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

Среда Windows

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

  • Выполните команду из командной строки PowerShell администратора
  • Выполнение команды на каждом компьютере
  • Выполните команду в том же пути к папке, что и команда регистрации среды.
./config.cmd remove

Среда Linux

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

./config.sh remove

Известные ограничения

При повторном выполнении этапа он повторно запускает развертывание на всех виртуальных машинах, а не только сбой целевых объектов.