Поделиться через


Создание и целевые среды

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 из внешнего редактора кода, конвейер завершается сбоем.

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

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

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

Чтобы создать первую среду, выполните приведенные действия.

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

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

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

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

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

Совет

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

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)

Использование проверок утверждения вручную

Для управления развертываниями в рабочих средах Azure Pipelines поддерживает проверки утверждения вручную в средах. Проверки утверждения доступны владельцам ресурсов для управления тем, когда этап в конвейере использует ресурс. Владельцы ресурсов могут определять утверждения и проверки, которые должны быть удовлетворены до начала этапа использования этого ресурса.

Роли создателя среды, администратора и пользователя, но не роли читателя, могут управлять утверждениями и проверками. Как владелец среды, вы можете вручную контролировать, когда этап должен выполняться с помощью проверок утверждения. Дополнительные сведения см. в разделе "Определение утверждений и проверок".

Просмотр сред в сведениях о выполнении

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

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

Примечание.

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

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

Чтобы просмотреть журнал развертывания, перейдите на вкладку "Развертывания" в разделе "Среды Azure Pipelines".

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

    Снимок экрана: список журналов развертывания.

  • Чтобы детализировать сведения о задании, на странице развертывания выберите вкладки "Изменения и рабочие элементы ". На вкладках отображаются списки фиксаций и рабочих элементов, развернутых в среде. Каждый элемент списка представляет новые элементы в этом развертывании.

    На вкладке "Изменения" первый список включает все фиксации в эту точку, а следующие списки включают только изменения для этого задания. Если несколько фиксаций привязаны к одному заданию, на вкладке "Изменения" есть несколько результатов.

    Снимок экрана: фиксации в журнале развертывания.

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

    Снимок экрана: рабочие элементы в журнале развертывания.

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

Вы можете защитить среды, задав разрешения пользователя и разрешения конвейера.

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

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

Чтобы добавить пользователя с помощью панели разрешений пользователя среды, перейдите в определенную среду, которую вы хотите авторизовать, выберите значок "Дополнительные действия" и выберите "Безопасность".

На панели разрешений пользователя на странице "Безопасность" выберите "Добавить", а затем выберите пользователя или группу и подходящую роль.

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

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

Внимание

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

Роль Description
Автор Глобальная роль, доступная из параметра безопасности центра сред. Члены этой роли могут создавать среду в проекте. Участники добавляются в качестве участников по умолчанию. Требуется для активации конвейера 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 теперь завершается сбоем этих заданий.