Введение
Контейнеризация произвела революцию в способах развертывания и управления программным обеспечением. Упаковывая приложения и их зависимости в контейнер, мы можем гарантировать, что наше программное обеспечение будет работать согласованно в различных средах. Это особенно полезно, когда речь идет о настройке автономных агентов для Azure Pipelines.
Автономный агент — это агент, который вы настраиваете и управляете самостоятельно для выполнения заданий. Вы можете использовать автономные агенты в Azure Pipelines или Git Hub Actions. Автономные агенты дают вам больше контроля над установкой зависимого программного обеспечения, необходимого для ваших сборок и развертываний.
Зачем использовать контейнерный автономный агент
Как мы увидели, преимущества выполнения рабочей нагрузки в контейнере включают гибкость, портативность, высокую плотность и многое другое. Запустив автономный агент в контейнере, вы можете воспользоваться преимуществами контейнеризации.
- Гибкость: вы можете легко разворачивать новые экземпляры вашего агента по мере необходимости, не беспокоясь об установке зависимостей вручную или настройке среды. Это может сэкономить вам время и усилия.
- Портативность: каждая команда инженеров может иметь автономию и собственный агент сборки для управления своим конвейером. Это помогает гарантировать согласованность сборок и развертываний команды.
- Высокая плотность. Запуск локального агента в контейнере может упростить управление инфраструктурой. Поскольку контейнеры легкие и портативные, вы можете легко перемещать агенты между разными хостами по мере необходимости. Это может помочь вам оптимизировать использование ресурсов и сократить расходы.
В чем проблема использования контейнерного автономного агента?
В рамках построения рабочей нагрузки CI/CD образы контейнеров являются ключевой возможностью. Задачи Docker можно запускать на контейнерном агенте selfhost, однако для этого требуется доступ к демону Docker на уровне хоста. Это имеет критические проблемы с безопасностью.
Решение — использовать задачу Реестра контейнеров Azure (ACR). С помощью задач ACR вы можете использовать Реестр контейнеров Azure для создания образов контейнеров для различных платформ в облаке. ACR Tasks также позволяет автоматизировать процесс обновления контейнеров Docker с помощью исправлений ОС и платформы.
По умолчанию реестр контейнеров Azure принимает подключения через Интернет от узлов в любой сети. Это открывает поверхность для атаки, что обычно неприемлемо в корпоративной среде. Задача ACR использует агент, работающий в Azure, и требует соответствующего разрешения для связи с реестром контейнеров Azure.
Предложенное решение
Существует широкий спектр вариантов запуска контейнерных автономных агентов в Azure: от службы Azure Kubernetes до приложения-контейнера Azure. Это доказательство концепции демонстрирует создание образов контейнеров с использованием локального агента с использованием экземпляров контейнеров Azure с реестром контейнеров Azure только с частным доступом.
Архитектура:
Доказательство концепции:
Все доказательства концепции написаны на Bicep и их можно найти в репозитории GitHub (https://github.com/duongthaiha/containerized-selfhost-agent,). Он предусматривает следующее:
- Предоставьте в виртуальной сети две подсети: одну для экземпляра контейнера Azure, а другую для реестра контейнеров Azure.
- Частная зона DNS и записи
- Предоставление реестра контейнеров Azure частной конечной точки
- Отключить общий доступ к реестру контейнеров Azure.
- Предоставление автономного агента Azure DevOps в экземплярах контейнеров Azure.
- Предоставьте задачу реестра контейнеров Azure для создания образа контейнера.
- Пользовательское определение и назначение ролей в соответствии с принципами минимальных привилегий.
Предварительное условие:
Организация ADO и токен PAT. Для получения более подробной информации требуется разрешение, см. Запуск локального агента в Docker — Azure Pipelines | Microsoft Обучение
GitHub Repo и Token для получения более подробной информации о требуемом разрешении см. Управление вашими токенами личного доступа – GitHub Docs
Шаги развертывания:
1) Обновите файл параметров, включив в него правильные параметры:
2) Запустите команду для развертывания ресурса:
3) Чтобы начать процесс сборки образа, мы можем подключиться к локальному агенту, используя возможность подключения в реестре контейнеров Azure.
4) Запустите команду, чтобы запустить задачу сборки.
5) На рисунке выше вы можете видеть, что самостоятельный агент успешно создал образ и загрузил его в реестр контейнеров Azure.
Краткое содержание:
Если вы планируете настроить автономный агент для Azure Pipelines, определенно стоит рассмотреть возможность запуска его в контейнере и использования реестра контейнеров Azure с отключенным общим доступом для создания образов с помощью задач ACR.
Связанный контент:
Запуск локального агента в Docker — Azure Pipelines | Microsoft Обучение
Управление вашими токенами личного доступа – GitHub Docs
Запуск локального агента в Docker — Azure Pipelines | Microsoft Обучение
Обзор задач ACR — Реестр контейнеров Azure | Microsoft Обучение
2023-09-12 17:40:25
1696854019
#Как #использовать #экземпляры #контейнеров #Azure #реестр #контейнеров #Azure #для #запуска #автономных #агентов #для #конвейеров #Azure