Создавайте и настраивайте целевые среды
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
В этой статье объясняется, как создавать и настраивать целевые среды Azure Pipelines. Среда — это коллекция ресурсов, предназначенных для развертываний из конвейера.
Среда представляет логическую цель, в которой конвейер развертывает программное обеспечение. Типичными именами сред являются разработка, тестирование, QA, промежуточное развертывание и рабочая среда.
Примечание.
Среды Azure DevOps недоступны в классических конвейерах. Для классических конвейеров группы развертывания предлагают аналогичные функциональные возможности.
Среды обеспечивают следующие преимущества:
История развертывания. Имя конвейера и детали выполнения записываются для развертывания в среду и ее ресурсы. В контексте нескольких конвейеров, предназначенных для одного и того же окружения или ресурса, вы можете использовать историю развертывания окружения для идентификации источника изменений.
Возможность трассировки коммитов и рабочих элементов. Можно просматривать задания в процессе выполнения конвейера, которые предназначены для определенной среды. Вы также можете просмотреть коммиты и рабочие элементы, которые были недавно развернуты в этом окружении. Возможность трассировки также позволяет отслеживать, достиг ли рабочий элемент изменения кода, функция или исправление ошибок целевую среду.
Состояние работоспособности диагностических ресурсов Вы можете проверить, работает ли приложение в нужном состоянии.
Безопасность. Вы можете защитить среды, указав, какие пользователи и конвейеры разрешены для целевой среды.
Среда — это группирование ресурсов, в которых ресурсы сами представляют собой фактические целевые объекты развертывания. В настоящее время среды Azure Pipelines поддерживают типы ресурсов Kubernetes и виртуальных машин .
Если конвейер YAML ссылается на среду, которая не существует:
Когда пользователь, выполняющий операцию, известен и разрешения можно назначить, Azure Pipelines автоматически создает среду.
Если в Azure Pipelines нет сведений о пользователе, выполняющем операцию, например в обновлении YAML из внешнего редактора кода, конвейер завершается сбоем.
Предварительные условия
Чтобы добавить среду, необходимо выполнить следующие предварительные требования:
- Организация и проект Azure DevOps.
- Роль создателя для сред в проекте.
Создать среду
Чтобы создать первую среду, выполните приведенные действия.
Войдите в организацию
https://dev.azure.com/{yourorganization}
Azure DevOps и откройте проект.Выберите Конвейеры>Среды>Создать среду.
Введите сведения для среды и нажмите кнопку "Создать". Вы можете добавить ресурсы в существующую среду позже.
Совет
Вы можете создать пустую среду и ссылаться на нее из заданий развертывания, чтобы фиксировать историю развертываний, связанную с этой средой.
Для программного создания сред и управления ими используйте REST API Среды Azure DevOps.
Azure Pipelines можно использовать для развертывания в средах. Дополнительные сведения см. в статье Сборка и развертывание для службы Azure Kubernetes с использованием Azure Pipelines.
Выберите среду для задания развертывания
Задание развертывания — это коллекция шагов, которые выполняются последовательно. Задание развертывания можно использовать для назначения всей группы ресурсов среды, как показано в следующем примере фрагмента кода 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
Назначение определенного ресурса среды из задания развертывания
Вы можете ограничить целевой объект развертывания определенным ресурсом в среде, чтобы записать журнал развертывания в определенном ресурсе. Шаги задания развертывания автоматически наследуют сведения о подключении службы от ресурса, на который нацелено задание развертывания.
В следующем примере значение для kubernetesServiceConnection
автоматически передается задаче из входных environment.resource
данных.
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)
Примечание.
Если вы используете частный кластер AKS, убедитесь, что вы подключены к виртуальной сети кластера, так как конечная точка сервера API не предоставляется через общедоступный IP-адрес.
Azure Pipelines рекомендует настроить локальный агент в виртуальной сети с доступом к виртуальной сети кластера. Дополнительные сведения см. в разделе "Параметры подключения к частному кластеру ".
Использование проверок утверждения вручную
Для управления развертываниями в продуктивных средах Azure Pipelines поддерживает ручные проверки утверждений в средах. Проверки утверждения доступны владельцам ресурсов для управления тем, когда этап в конвейере использует ресурс. Владельцы ресурсов могут определять утверждения и проверки, которые должны быть удовлетворены до начала этапа использования этого ресурса.
Роли Создателя, Администратора и Пользователя в среде, но не роль Читателя, могут управлять утверждениями и проверками. Как собственник среды, вы можете вручную контролировать, когда этап должен выполняться с помощью проверок одобрения. Дополнительные сведения см. в разделе "Определение утверждений и проверок".
Просмотр окружений в деталях выполнения
На вкладке «Среды» в сведениях о запуске конвейера можно увидеть все среды, на которые были нацелены задания развертывания этого запуска.
Примечание.
Если вы используете частный кластер Служба Azure Kubernetes (AKS), вкладка "Среды" недоступна.
Просмотр истории развертывания
Чтобы просмотреть журнал развертывания, перейдите на вкладку Развертывания в разделе Среды в Azure Pipelines.
Просматривайте задания из всех конвейеров, нацеленных на конкретную среду. Например, две микрослужбы, которые имеют собственный конвейер, могут развертываться в одной среде. Журнал развертывания помогает определить все конвейеры, влияющие на среду, а также визуализировать последовательность развертываний по каждому конвейеру.
Чтобы детализировать сведения о задании, на странице развертывания выберите вкладки "Изменения и рабочие элементы ". На вкладках отображаются списки фиксаций и рабочих элементов, развернутых в этой среде. Каждый элемент списка представляет новые элементы в этом развертывании.
На вкладке "Изменения" первый список включает все коммиты до этого момента, а следующие списки включают только изменения для этой задачи. Если несколько фиксаций связаны с одной задачей, на вкладке «Изменения» отображается несколько результатов.
Если несколько рабочих элементов привязаны к одному заданию, на вкладке "Рабочие элементы" есть несколько результатов.
Безопасность
Вы можете защитить среды, задав разрешения пользователя и разрешения конвейера.
Разрешения пользователей
Вы можете управлять тем, кто может создавать, просматривать, использовать среды и управлять ими с разрешениями пользователей. Существует четыре роли: Создатель с областью действия всех сред, читателя, пользователя и администратора.
Чтобы добавить пользователя с помощью панели разрешений пользователя среды, перейдите в определенную среду, которую вы хотите авторизовать, выберите значок "Дополнительные действия" и выберите "Безопасность".
На панели разрешений пользователя на странице "Безопасность" выберите "Добавить", а затем выберите пользователя или группу и подходящую роль.
На панели разрешений пользователя можно также задать наследуемые разрешения и переопределить роли для вашей среды.
Роль | Описание |
---|---|
Автор | Глобальная роль, доступная из опции безопасности узла окружений. Члены этой роли могут создавать среду в проекте. Контрибьюторы добавляются в качестве членов по умолчанию. Требуется для запуска конвейера YAML, когда среда еще не существует. |
Читатель | Члены этой роли могут просматривать среду. |
Пользователь | Члены этой роли могут использовать среду при создании или редактировании конвейеров YAML. |
Администратор | Члены этой роли могут администрировать разрешения, создавать, управлять, просматривать и использовать среды. Для конкретной среды его создатель по умолчанию добавляется в качестве администратора. Администраторы также могут открывать полный доступ к окружению для всех пайплайнов. |
Внимание
При создании среды только создатель имеет роль администратора.
Роль | Описание |
---|---|
Автор | Глобальная роль, доступная из параметров безопасности узла среды. Члены этой роли могут создавать среду в проекте. Участники по умолчанию добавляются как члены. Необходимо для запуска конвейера YAML, если среда еще не существует. |
Читатель | Члены этой роли могут просматривать окружение. |
Пользователь | Члены этой роли могут использовать среду при создании или редактировании конвейеров YAML. |
Администратор | Помимо использования среды, члены этой роли могут управлять составом всех других ролей в среде. Создатели добавляются как члены по умолчанию. |
Разрешения трубопровода
Используйте панель разрешений конвейера на странице "Безопасность", чтобы авторизовать все или выбранные конвейеры для развертывания в среде.
Чтобы удалить открытый доступ в среде или ресурсе, выберите "Ограничить разрешение " в разрешениях конвейера.
Если разрешения ограничены, можно разрешить определенным конвейерам развертываться в среде или в определенном ресурсе. Выберите + и выберите из списка разрешенных конвейеров.
Вопросы и ответы
Почему при попытке создать среду возникает сообщение об ошибке?
Если вы видите сообщение Доступ запрещен: {User} необходимы разрешения на создание, чтобы выполнить действие, перейдите в Параметры организации>Пользователи, чтобы проверить, есть ли у вас роль Заинтересованного лица. Роль заинтересованных лиц не может создавать среды, так как заинтересованные лица не имеют доступа к репозиторию.
Измените уровень доступа и проверьте, можете ли вы создавать среды. Дополнительные сведения см. в статье Часто задаваемые вопросы об управлении пользователями и разрешениями.
Почему я получаю ошибку о том, что среда не найдена?
Если отображается сообщение Job XXXX: Среда XXXX не найдена. Среда не существует или не авторизована для использования.Существует несколько возможных причин сбоя.
Параметры среды выполнения не работают при создании сред, так как параметры развертываются только во время выполнения. Можно использовать переменные для создания среды или использовать templateContext для передачи свойств шаблонам.
Azure Pipelines может не иметь сведений о создании среды пользователем.
Когда вы добавляете ссылку на среду, которая не существует в файле конвейера YAML, Azure Pipelines автоматически создает среду в следующих случаях:
- Вы используете мастер создания YAML-конвейера в веб-интерфейсе Azure Pipelines и ссылаетесь на среду, которая еще не создана.
- Вы обновляете файл YAML с помощью веб-редактора Azure Pipelines и сохраняете конвейер после добавления ссылки на среду.
В следующих случаях Azure Pipelines не содержит сведений о создании среды пользователем, поэтому конвейер завершается сбоем.
- Файл YAML обновляется с помощью другого внешнего редактора кода.
- Вы добавляете ссылку на среду, которая не существует, а затем вызываете запуск конвейера выполняемой вручную или непрерывной интеграции.
Ранее Azure Pipelines обрабатывал эти случаи, добавляя всем участникам проекта роль администратора среды. После этого любой участник проекта может изменить эти разрешения и запретить другим пользователям доступ к среде. Чтобы предотвратить этот результат, Azure Pipelines теперь завершает выполнение этих задач с ошибкой.