Обработка нескольких серверов на этапе конвейера выпуска Azure DevOps

#azure-devops #devops #azure-pipelines-release-pipeline #multistage-pipeline

#azure-devops #devops #azure-pipelines-release-pipeline #многоступенчатый конвейер

Вопрос:

У меня есть вопрос о конвейерах выпуска Azure DevOps. Мой рабочий процесс конвейера является многоступенчатым, где сборка запускает этап контроля качества, который затем запускает этап UAT, который затем запускает этап PROD.

Я использую переменные конвейера для управления каждым этапом и требую предварительного утверждения на этапах UAT и PROD, чтобы изменения не развертывались на каждом этапе последовательно.

Мой вопрос заключается в том, как справиться со случаем, когда у меня несколько серверов в среде. Я вижу, что каждую среду следует рассматривать как этап, но прямо сейчас я рассматриваю каждый сервер в среде как этап, на котором задачи выполняются параллельно. Это работает на первом этапе (QA), но становится уродливым для UAT, поскольку каждый сервер требует предварительного утверждения вместо среды.

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

В настоящее время мой конвейер выглядит так, как показано на рисунке ниже, с UAT1 и UAT2, каждый из которых требует утверждения. Как мне обрабатывать несколько серверов на этапах QA и UAT, а затем PROD?

введите описание изображения здесь

Комментарии:

1. Привет @Lee Z. Можете ли вы объяснить этот момент: multiple servers in an environment ? Вы имеете в виду, что несколько агентов, несколько целевых объектов в группе развертывания или других серверах? На основе моего теста, когда я предварительно утверждаю этап, это может работать для всего этапа, а не для сервера. Вы можете поделиться с нами страницей ошибок или шагами. С другой стороны, вы также можете поделиться с нами идеальным состоянием.

2. Привет @KevinLu-MSFT, в моей среде контроля качества есть 2 сервера, а в моей среде UAT — 2 сервера. Используя группы задач, я смог решить эту проблему. Я опубликую ответ, чтобы другие могли получить знания

Ответ №1:

Моя проблема заключалась в том, что я использовал этап для представления одного сервера в среде (например, QA, UAT или PROD) вместо объединения задач, выполняемых на сервере, в группу задач, а затем использования нескольких групп задач на этапе.

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

введите описание изображения здесь

На этапе для каждого сервера существует группа задач.

введите описание изображения здесь

Общие задачи для каждого сервера содержатся в группе задач

введите описание изображения здесь