Использование DevTest Labs в сборочных и выпускных конвейерах Azure Pipelines

В этой статье содержатся сведения о том, как DevTest Labs можно использовать в Azure Pipelines конвейерах сборки и выпуска.

Общий поток

Базовый поток состоит в наличии конвейера сборки , выполняющего следующие задачи:

  1. Создайте код приложения.
  2. Создайте базовую среду в DevTest Labs.
  3. Обновите среду пользовательскими сведениями.
  4. Развертывание приложения в среде DevTest Labs
  5. Проверьте код.

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

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

С помощью DevTest Labs на этапе сборки и тестирования можно добавить Azure Resource Manager шаблоны и вспомогательные файлы в источники сборки. На этапе выпуска вы развертываете точную конфигурацию, используемую в тестовой среде. Задача create Azure DevTest Labs Environment с правильной конфигурацией сохраняет шаблоны Resource Manager в артефактах сборки. В этом примере вы используете код из руководства. Создание веб-приложения .NET Core и Базы данных SQL в Служба приложений Azure для развертывания и тестирования веб-приложения в Azure.

Схема, показывающая общий поток.

Настройка ресурсов Azure

Необходимо создать несколько элементов заранее:

  • Два репозитория. Первый с кодом из учебника и шаблоном Resource Manager с двумя дополнительными виртуальными машинами. Второй будет содержать базовый шаблон Azure Resource Manager (существующая конфигурация).
  • Группа ресурсов для развертывания рабочего кода и конфигурации.
  • Лаборатория с подключением к репозиторию конфигурации для конвейера сборки. Добавьте шаблон Resource Manager в репозиторий конфигурации как azuredeploy.json вместе с metadata.json. Это имя позволяет DevTest Labs распознавать и развертывать шаблон.

Конвейер сборки создает среду DevTest Labs и развертывает код для тестирования.

Настройка конвейера сборки

В Azure Pipelines создайте конвейер сборки с помощью кода из руководства. Создание веб-приложения .NET Core и базы данных SQL в Служба приложений Azure. Используйте шаблон ASP.NET Core, который заполняет необходимую задачу для сборки, тестирования и публикации кода.

Снимок экрана: выбор шаблона ASP.NET.

Добавьте еще три задачи для создания среды в DevTest Labs и развертывания в среде.

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

Создать задачу окружения

В задаче создания среды Azure DevTest Labs используйте раскрывающиеся списки, чтобы выбрать следующие значения:

  • подписка Azure
  • Имя лаборатории
  • Имя репозитория
  • Имя шаблона (в котором отображается папка, в которой хранится среда).

Рекомендуется использовать раскрывающиеся списки на странице вместо ввода сведений вручную. Если вы вводите сведения вручную, введите полные идентификаторы ресурсов Azure. Задача отображает понятные имена вместо идентификаторов ресурсов.

Имя среды — это имя, которое отображается в DevTest Labs. Это должно быть уникальное имя для каждой сборки. Например: TestEnv$(Build.BuildId).

Можно указать файл параметров или параметры для передачи сведений в шаблон Resource Manager.

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

Снимок экрана, на котором показана задача

Задача заполнения среды

Вторая задача (Azure DevTest Labs Заполнение среды задача) предназначена для обновления существующей среды DevTest Labs. Задача "Создание среды" выводит BaseEnv.environmentResourceId , которая используется для настройки имени среды для этой задачи. Шаблон Resource Manager для этого примера имеет два параметра : adminUserName и adminPassword.

Снимок экрана, на котором показана задача Populate Azure DevTest Labs Environment.

Задача развертывания службы приложений

Третья задача — это задача Служба приложений Azure Deploy. Для типа приложения задано значение Web App , а имя службы приложений — $(WebSite).

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

Настройка конвейера выпуска

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

Для первой задачи укажите имя и расположение группы ресурсов. Местоположение шаблона — связанный артефакт. Если шаблон Resource Manager включает связанные шаблоны, необходимо реализовать развертывание настраиваемой группы ресурсов. Шаблон находится в опубликованном артефакте удаления. Переопределите параметры шаблона для шаблона Resource Manager. Оставшиеся параметры можно оставить со значениями по умолчанию.

Для второй задачи развертывания Служба приложений Azure укажите подписку Azure, выберите веб-приложение для типа приложения и $(WebSite)для имени службы приложений. Оставшиеся параметры можно оставить со значениями по умолчанию.

Пробный запуск

Теперь, когда оба конвейера настроены, вручную поставьте сборку в очередь и посмотрите, как она работает. Следующим шагом является установка соответствующего триггера для сборки и подключение сборки к конвейеру выпуска.

Дальнейшие действия

См. следующие статьи: