Могу ли я использовать пулы развертывания в Yaml?

Совсем недавно мы преобразовали нашу платформу Azure в последнюю версию. Таким образом, мы просматриваем наши проекты и резервно подключаем конвейеры (поскольку наш сервер тоже изменился). Пока мы это делали, я заметил, что наши новые приложения используют .Net Core, поэтому их сборки и развертывания представляют собой файлы yaml, а не классические конвейеры. Из-за этого в проектах использовались среды, которые были агентами развертывания непосредственно на ящиках, на которых мы хотели публиковать и развертывать.

Этот процесс работал раньше, но поскольку никто из нас не очень хорошо разбирается в Azure DevOps, нам было интересно, почему файлы yaml не могут использовать уже настроенные пулы развертывания. Все старые классические конвейеры были нацелены на них. И это звучит как лучший вариант: позволить одному агенту развертывания обрабатывать все развертывания в одном компьютере, а не запускать несколько агентов развертывания на одном компьютере.

Однако, оглядываясь вокруг, я не могу найти ничего, что указывало бы на использование пулов развертывания в связи с yaml. Yaml, похоже, работает только для сред, которые специально обновляются и создаются для проекта. Может ли кто-нибудь сказать мне, возможно ли вообще то, что я хочу сделать? И если да, то как мне настроить для этого свой файл yaml? Ниже я опубликую, как выглядит мой файл yaml, чтобы вы знали, что он делал раньше со средами.

trigger:
- none

variables:
  IISWebsiteName: 'DevOpsApplications'
  IISWebApplicationName: 'TestApplication'
resources:
  pipelines:
    - pipeline: 'buildPipeline'
      project: 'TestProjectApplication'
      source: 'Build Pipeline'
      branch: trunk
 stages:
   - stage: DeployWebsite
     displayName: 'Deploy Website'
     pool:
       name: 'Default'
     jobs:
     - deployment: DeployWebsite
       displayName: 'Deploy Website'
       environment: 'THISWASTHEENVIRONMENT_BEFORECHANGE'
       strategy:
         runOnce:
           deploy:
             steps:
               - checkout: none
               - download: 'buildPipeline'
                 name: 'DownloadBuildArtifacts'
                 displayName: 'Download Build Artifacts'
                 artifact: 'TestAppArtifact'
               - task: IISWebAppManagementOnMachineGroup@0
                 name: 'StopIIS'
                 displayName: 'Stop Website'
                 inputs:
                   IISDeploymentType: 'IISWebsite'
                   ActionIISWebsite: 'StopWebsite'
                   StartStopWebsiteName: '${{ variables.IISWebsiteName }}'
               - task: IISWebAppManagementOnMachineGroup@0
                 name: 'DeployWebService'
                 displayName: 'Deploy Web Service Application'
                 inputs:
                   WebSiteName: '${{ variables.IISWebsiteName }}'
                   VirtualApplication: '${{ variables.IISWebApplicationName }}'
                   Package: '$(Pipeline.Workspace)\buildPipeline\TestApplication\TestProject'
                   TakAppOfflineFlag: true
               - task:
                 name: 'StartIIS'
                 displayName: 'Start IIS Website'
                 inputs:
                   IISDeploymentType: 'IISWebsite'
                   ActionIISWebsite: 'StartWebsite'
                   StartStopWebsiteName: '${{ variables.IISWebsiteName }}'

50
2

Ответы:

Могу ли я использовать пулы развертывания в Yaml?

Согласно YAML против классических конвейеров, группы развертывания (и пулы развертывания) доступны только в классических конвейерах выпуска.

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


Решено

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

В конвейере YAML мы можем ссылаться на среду и настраивать задания развертывания для масштабирования ресурсов виртуальной машины. Но мы не можем запускать задания развертывания конвейера YAML в пулах развертывания, созданных группами развертывания для конвейеров выпуска.


jobs:
- deployment: Deploy
  environment:
    name: E-Test
    resourceType: virtualMachine
  strategy:
    runOnce:
      deploy:
        steps:
        - script: |
            echo "Running deployment job of YAML pipeline on VM resources of pipeline environment."