Создание среды и выбор ее в качестве целевой

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

Среда — это коллекция ресурсов, предназначенных для развертываний из конвейера. Типичные примеры имен сред: Dev, Test, QA, Staging и Production. Среда Azure DevOps представляет логическую цель, в которой конвейер развертывает программное обеспечение.

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

Среды предоставляют следующие преимущества.

Преимущества Description
Журнал развертывания Имя конвейера и сведения о выполнении записываются для развертываний в среде и ее ресурсах. В контексте нескольких конвейеров, предназначенных для одной среды или ресурса, журнал развертывания среды полезен для идентификации источника изменений.
Трассировка фиксаций и рабочих элементов Просмотр заданий в конвейере, предназначенных для среды. Вы также можете просмотреть фиксации и рабочие элементы , которые были недавно развернуты в среде. Возможность трассировки также позволяет отслеживать, достигла ли среда изменения кода (фиксация) или компонента или исправления ошибок (рабочие элементы).
Работоспособности диагностических ресурсов Проверьте, работает ли приложение в нужном состоянии.
Безопасность Безопасные среды, указывая, какие пользователи и конвейеры разрешены для целевой среды.

Хотя среда представляет собой группирование ресурсов, ресурсы сами представляют собой фактические целевые объекты развертывания. В настоящее время поддерживаются типы ресурсов Kubernetes и виртуальных машин.

При создании конвейера YAML и ссылке на среду, которая не существует, Azure Pipelines автоматически создает среду, когда пользователь, выполняющий операцию, известен и разрешения могут быть назначены. Если в Azure Pipelines нет сведений о создании среды пользователем (например, обновление YAML из внешнего редактора кода), конвейер завершается ошибкой, если среда еще не существует.

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

Создать среду

  1. Войдите в свою организацию https://dev.azure.com/{yourorganization} и выберите проект.

  2. Выберите "Создать>среду конвейеров".>

    Environments

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

    Screenshot of creating a new environment.

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

Совет

Вы можете создать пустую среду и ссылаться на нее из заданий развертывания. Это позволяет записывать журнал развертывания в среде.

Цель среды из задания развертывания

Задание развертывания — это коллекция шагов для последовательного выполнения. Задание развертывания можно использовать для целевой среды (группы ресурсов), как показано в следующем фрагменте КОДА YAML. Конвейер будет выполняться на компьютере myVM, так как указано имя ресурса.

- stage: deploy
  jobs:
  - deployment: DeployWeb
    displayName: deploy Web App
    pool:
      vmImage: 'Ubuntu-latest'
    # creates an environment if it doesn't exist
    environment: 
      name: 'smarthotel-dev'
      resourceName: myVM
      resourceType: virtualMachine
    strategy:
      runOnce:
        deploy:
          steps:
          - script: echo Hello world

Назначение определенного ресурса в среде из задания развертывания

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

environment: 
  name: 'smarthotel-dev.bookings'
strategy: 
 runOnce:
   deploy:
     steps:
     - task: KubernetesManifest@0
       displayName: Deploy to Kubernetes cluster
       inputs:
         action: deploy
         namespace: $(k8sNamespace)
         manifests: $(System.ArtifactsDirectory)/manifests/*
         imagePullSecrets: $(imagePullSecret)
         containers: $(containerRegistry)/$(imageRepository):$(tag)
         # value for kubernetesServiceConnection input automatically passed down to task by environment.resource input

Сведения о среде выполнения

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

Environments in run details

Если вы используете частный кластер AKS, вкладка "Среды " недоступна.

Утверждения

Управление выполнением этапа вручную с помощью проверка утверждений. Используйте проверка утверждения для управления развертываниями в рабочих средах. Проверки доступны владельцу ресурса, чтобы контролировать, когда этап в конвейере использует ресурс. Как владелец ресурса, например среды, можно определить утверждения и проверка, которые должны быть удовлетворены перед началом этапа использования этого ресурса.

Мы поддерживаем проверка утверждения вручную в средах. Дополнительные сведения см. в Утверждения.

Создатель, Администратор istrator и роли пользователей могут управлять утверждениями и проверка. Роль читателя не может управлять утверждениями и проверка.

Журнал развертывания

Представление журнала развертывания в средах обеспечивает следующие преимущества.

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

    Screenshot of deployment history listing.

  • Подробные сведения о задании см. в списке фиксаций и рабочих элементов, развернутых в среде. Список фиксаций и рабочих элементов — это новые элементы между развертываниями. Первый список включает все фиксации, и следующие списки будут просто включать изменения. Если несколько фиксаций привязаны к одному запросу на вытягивание, вы увидите несколько результатов на рабочих элементах и вкладках изменений.

    Screenshot of commits under deployment history.

  • Если несколько рабочих элементов привязаны к одному запросу на вытягивание, на вкладке рабочих элементов появится несколько результатов.

    Screenshot of work items under deployment history.

Безопасность

Разрешения пользователей

Управление тем, кто может создавать, просматривать, использовать среды и управлять ими с разрешениями пользователей. Существует четыре роли - Creator (область: все среды), читатель, пользователь и Администратор istrator. На панели разрешений пользователя конкретной среды можно задать наследуемые разрешения и переопределить роли для каждой среды.

  1. Перейдите в определенную среду , которую требуется авторизовать.
  2. Выберите >"Безопасность", чтобы просмотреть параметры.
  3. Выберите разрешения> пользователя+Добавить>пользователя или группу, а затем выберите подходящую роль.
Роль Description
Автор Глобальная роль, доступная из параметра безопасности центра сред. Члены этой роли могут создавать среду в проекте. Участники добавляются в качестве участников по умолчанию. Требуется для активации конвейера YAML, если среда еще не существует.
Читатель Члены этой роли могут просматривать среду.
Пользователь Члены этой роли могут использовать среду при создании или редактировании конвейеров YAML.
Администратор Члены этой роли могут администрировать разрешения, создавать, управлять, просматривать и использовать среды. Для конкретной среды его создатель добавляется как Администратор inistrator по умолчанию. Администратор istrator также может открывать доступ к среде ко всем конвейерам.

Важно!

При создании среды только создатель имеет роль администратора.

Роль Description
Автор Глобальная роль, доступная из параметра безопасности центра сред. Члены этой роли могут создавать среду в проекте. Участники добавляются в качестве участников по умолчанию. Требуется для активации конвейера YAML, если среда еще не существует.
Читатель Члены этой роли могут просматривать среду.
Пользователь Члены этой роли могут использовать среду при создании или редактировании конвейеров YAML.
Администратор Помимо использования среды, члены этой роли могут управлять членством во всех остальных ролях для среды. Создатели добавляются как члены по умолчанию.

Разрешения конвейера

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

  • Чтобы удалить открытый доступ в среде или ресурсе, выберите "Ограничить разрешение " в разрешениях конвейера.
  • Чтобы разрешить развертывание определенных конвейеров в среде или конкретном ресурсе, выберите и выберите + из списка конвейеров.

Следующие шаги

Определение утверждений и проверок

Вопросы и ответы

Вопрос. Почему при попытке создать среду возникает сообщение об ошибке?

Ответ. Если появится сообщение "Доступ запрещен: {User} требуется создать разрешения для выполнения действия", проверка разрешения на уровне организации. Перейдите в раздел Параметры организации>Пользователи и проверьте, если у вас есть роль заинтересованного лица. Роль заинтересованного лица не может создавать среды. Измените уровень доступа и проверьте, можете ли вы создавать среды. Дополнительные сведения см. в статье Часто задаваемые вопросы об управлении пользователями и разрешениями.

Вопрос. Почему я получаю ошибку "Job XXXX: Environment XXXX не удалось найти. Среда не существует или не авторизована для использования"?

Ответ. Ниже приведены некоторые из возможных причин сбоя:

  • При создании конвейера YAML и ссылке на среду, которая не существует в ФАЙЛЕ YAML, Azure Pipelines автоматически создает среду в некоторых случаях:

    • Вы используете мастер создания конвейера YAML в веб-интерфейсе Azure Pipelines и ссылаетесь на среду, которая еще не создана.
    • Вы обновляете файл YAML с помощью веб-редактора Azure Pipelines и сохраняете конвейер после добавления ссылки на среду, которая не существует.
  • В следующих потоках Azure Pipelines не содержит сведений о создании среды пользователем: вы обновляете YAML-файл с помощью другого внешнего редактора кода, добавьте ссылку на среду, которая не существует, а затем приводит к активации конвейера непрерывной интеграции вручную или непрерывной интеграции. В этом случае Azure Pipelines не знает о пользователе. Ранее мы обрабатывали этот случай, добавив всех участников проекта в роль администратора среды. После этого любой участник проекта может изменить эти разрешения и запретить другим пользователям доступ к среде.

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

  • Пользователь с уровнем доступа заинтересованных лиц не может создать среду, так как заинтересованные лица не имеют доступа к репозиторию.