Руководство. Использование Экземпляры контейнеров Azure в качестве агента сборки Jenkins

Важно!

Многие службы Azure используют подключаемые модули Jenkins. Поддержка некоторых таких подключаемых модулей будет прекращена 29 февраля 2024 г. В настоящее время для интеграции Jenkins со службами Azure рекомендуется использовать Azure CLI. Дополнительные сведения см. в статье Подключаемые модули Jenkins для Azure.

Экземпляры контейнеров Azure (ACI) предоставляют доступную по требованию изолированную среду выполнения с накапливаемыми ресурсами для контейнерных рабочих нагрузок. Эти характеристики делают ACI отличной платформой для масштабного выполнения заданий сборки Jenkins. В этой статье показано, как развернуть ACI и добавить эту службу в качестве постоянного агента сборки для контроллера Jenkins.

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

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

Подготовка сервера Jenkins

  1. Перейдите на портал Jenkins.

  2. В меню выберите пункт Manage Jenkins (Управление Jenkins).

  3. В разделе System Configuration (Конфигурация системы) выберите элемент Configure System (Настройка системы).

  4. Убедитесь, что для параметра Jenkins URL (URL-адрес Jenkins) задан HTTP-адрес установки Jenkins: http://<your_host>.<your_domain>:8080/.

  5. В меню выберите пункт Manage Jenkins (Управление Jenkins).

  6. В разделе Security (Безопасность) выберите элемент Configure Global Security (Настройка глобальной безопасности).

  7. В разделе Agents (Агенты) в качестве порта укажите значение Fixed (Фиксированный) и введите соответствующий номер порта для своей среды.

    Пример конфигурации: Configure TCP port

  8. Выберите Сохранить.

Создание рабочего агента Jenkins

  1. Перейдите на портал Jenkins.

  2. В меню выберите пункт Manage Jenkins (Управление Jenkins).

  3. В разделе System Configuration (Конфигурация системы) выберите элемент Manage Nodes and Clouds (Управление узлами и облаками).

  4. В меню выберите пункт New Node (Новый узел).

  5. Введите значение в поле Node Name (Имя узла).

  6. Выберите элемент Permanent Agent (Постоянный агент).

  7. Нажмите ОК.

  8. Введите значение в поле Remote root directory (Удаленный корневой каталог). Пример: /home/jenkins/work

  9. Добавление метки (метки используются для группировки нескольких агентов в одну логическую группу. Пример метки — linux группировать агенты Linux.) со значением linux.

  10. Задайте для параметра Launch method (Метод запуска) значение Launch agent by connecting to the master (Запускать агент, подключившись к главному серверу).

  11. Убедитесь, что заполнены все обязательные поля:

    Example Jenkins agent configuration

  12. Выберите Сохранить.

  13. На странице состояния агента вы увидите JENKINS_SECRET и AGENT_NAME. На приведенном ниже снимке экрана показано, как определить значения. Оба значения необходимы при создании экземпляра Экземпляров контейнеров Azure.

    The build-agent secret is displays after its successful creation.

Создание экземпляра контейнера Azure с помощью CLI

  1. Используйте az group create, чтобы создать группу ресурсов Azure.

    az group create --name my-resourcegroup --location westus
    
  2. Используйте az container create для создания экземпляра контейнера Azure. Замените заполнители значениями, полученными при создании рабочего агента.

    az container create \
      --name my-dock \
      --resource-group my-resourcegroup \
      --ip-address Public --image jenkins/inbound-agent:latest \
      --os-type linux \
      --ports 80 \
      --command-line "jenkins-agent -url http://jenkinsserver:port <JENKINS_SECRET> <AGENT_NAME>"
    

    Замените http://jenkinsserver:port, <JENKINS_SECRET> и <AGENT_NAME> сведениями о вашем контроллере и агенте Jenkins. После запуска контейнер автоматически подключится к серверу контроллера Jenkins.

  3. Вернитесь на панель мониторинга Jenkins и проверьте состояние агента.

    Agent has started successfully

    Примечание.

    Агенты Jenkins подключаются к контроллеру через порт 5000. Убедитесь, что для порта разрешен входящий трафик на контроллер Jenkins.

Создание задания сборки

Теперь для демонстрации сборки Jenkins в экземпляре контейнера Azure необходимо создать задание сборки Jenkins.

  1. Выберите Новый элемент, присвойте проекту сборки имя, например aci-demo, затем выберите тип Универсальный проект и щелкните ОК.

    Box for the name of the build job, and list of project types

  2. В разделе Общие проверьте, что установлен флажок Ограничения для запуска этого проекта. В поле выражения метки введите linux. Такая конфигурация гарантирует, что это задание сборки будет выполняться только в облаке экземпляров контейнеров Azure.

  3. В разделе Сборка выберите действие Добавить шаг сборки и щелкните Выполнить оболочку. Введите echo "aci-demo" в качестве команды.

  4. Выберите Сохранить.

Запустите задание сборки.

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

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

  2. Щелкните сборку № 1 в разделе Журнал сборок.

  3. Выберите Выходные данные консоли, чтобы просмотреть выходные данные сборок.

Следующие шаги