Руководство. Масштабирование развертываний Jenkins с виртуальной машиной, работающей в Azure
Важно!
Многие службы Azure используют подключаемые модули Jenkins. Поддержка некоторых таких подключаемых модулей будет прекращена 29 февраля 2024 г. В настоящее время для интеграции Jenkins со службами Azure рекомендуется использовать Azure CLI. Дополнительные сведения см. в статье Подключаемые модули Jenkins для Azure.
В этом руководстве показано, как создать виртуальные машины Linux в Azure и добавить виртуальную машину в качестве рабочего узла в Jenkins.
При работе с этим руководством вы сделаете следующее:
- создадите компьютер агента;
- Добавление агента в Jenkins
- создавать универсальное задание Jenkins;
- запускать задание в агенте виртуальной машины Azure.
Необходимые компоненты
- Установка Jenkins: если у вас нет доступа к установке Jenkins, настройте Jenkins с помощью Azure CLI
Настройка виртуальной машины агента
Используйте az group create, чтобы создать группу ресурсов Azure.
az group create --name <resource_group> --location <location>
Используйте az vm create, чтобы создать виртуальную машину.
az vm create --resource-group <resource-group> --name <vm_name> --image UbuntuLTS --admin-username azureuser --admin-password "<password>"
Основные моменты:
- Кроме того, вы можете передать ключ SSH с помощью следующей команды:
--ssh-key-value <ssh_path>
.
- Кроме того, вы можете передать ключ SSH с помощью следующей команды:
Установите JDK.
Войдите на виртуальную машину с помощью средства SSH.
ssh username@123.123.123.123
Установите JDK, используя apt. Также возможна установка с помощью других диспетчеров пакетов, например yum или pacman.
sudo apt-get install -y default-jdk
После установки выполните
java -version
, чтобы проверить окружение Java. Выходные данные будут содержать номера версий, связанные с разными частями JDK.
Настройка URL-адреса Jenkins
При использовании JNLP необходимо настроить URL-адрес Jenkins.
В меню выберите пункт Manage Jenkins (Управление Jenkins).
В разделе System Configuration (Конфигурация системы) выберите элемент Configure System (Настройка системы).
Убедитесь, что для параметра Jenkins URL (URL-адрес Jenkins) задан HTTP-адрес установки Jenkins:
http://<your_host>.<your_domain>:8080/
.Выберите Сохранить.
Добавление агента в Jenkins
В меню выберите пункт Manage Jenkins (Управление Jenkins).
В разделе System Configuration (Конфигурация системы) выберите элемент Manage Nodes and Clouds (Управление узлами и облаками).
В меню выберите пункт New Node (Новый узел).
Введите значение в поле Node Name (Имя узла).
Выберите элемент Permanent Agent (Постоянный агент).
Нажмите ОК.
Укажите значения для следующих полей:
Имя. Укажите уникальное имя, которое идентифицирует агент в новой установке Jenkins. Это значение может отличаться от имени узла агента. Но вы можете сделать эти два значения одинаковыми. В качестве значения имени можно использовать любой специальный символ из следующего списка:
?*/\%!@#$^&|<>[]:;
.Удаленный корневой каталог: агент должен иметь каталог, выделенный Jenkins. Укажите путь к этому каталогу в агенте. Лучше использовать абсолютный путь, например
/home/azureuser/work
илиc:\jenkins
. Он должен быть локальным для компьютера агента. Этот путь может быть невидимым для главного сервера. Если используется относительный путь, например ./jenkins-agent, путь будет относительным для рабочего каталога, предоставленного методом запуска.Метки: метки используются для группировки семантических агентов в одну логическую группу. Например, можно определить метку
UBUNTU
для всех агентов, работающих под управлением такого дистрибутива Linux, как Ubuntu.Метод запуска: есть два варианта запуска удаленного узла Jenkins: запуск агентов через SSH и агент запуска с помощью выполнения команды на главном сервере:
Запуск агентов с помощью SSH: укажите значения для следующих полей:
Узел: общедоступный IP-адрес виртуальной машины или доменное имя. Например,
123.123.123.123
илиexample.com
.Учетные данные: выберите учетные данные, которые будут использоваться для входа в удаленный узел. Кроме того, вы можете нажать кнопку Add (Добавить), чтобы определить новые учетные данные, а затем выбрать эти новые учетные данные после создания.
Стратегия проверки ключа узла: определяет, как Jenkins проверяет ключ SSH, представленный удаленным узлом при подключении.
Запуск агента с помощью команды на главном сервере.
Скачайте из
agent.jar
https://<your_jenkins_host_name>/jnlpJars/agent.jar
. Например,https://localhost:8443/jnlpJars/agent.jar
.Отправьте
agent.jar
на виртуальную машину.Запустите Jenkins с помощью команды
ssh <node_host> java -jar <remote_agentjar_path>
. Например,ssh azureuser@99.99.999.9 java -jar /home/azureuser/agent.jar
.
Выберите Сохранить.
После определения конфигураций Jenkins добавляет виртуальную машину в качестве нового рабочего узла.
Создание задания в Jenkins
В меню выберите пункт New Item (Новый элемент).
В поле имени введите
demoproject1
.Выберите Freestyle project (Универсальный проект).
Нажмите ОК.
На вкладке General (Общие) выберите Restrict where project can be run (Ограничения для запуска проекта) и введите для выражения метки значение
ubuntu
. Появится сообщение, подтверждающее обработку метки конфигурацией облака, созданной на предыдущем шаге.На вкладке Source Code Management (Управление исходным кодом) выберите Git и добавьте следующий URL-адрес в поле Repository URL (URL-адрес репозитория):
https://github.com/spring-projects/spring-petclinic.git
.На вкладке Build (Сборка) выберите Add build step (Добавить шаг сборки), а затем — Invoke top-level Maven targets (Вызов целевых объектов Maven верхнего уровня). В поле Goals (Цели) введите
package
.Выберите Сохранить.
Сборка задания в агенте виртуальной машины Azure
Выберите задание, созданное на предыдущем шаге.
Выберите Build now (Собрать). Новая сборка поставлена в очередь, но она не будет запущена до создания агента виртуальной машины в подписке Azure.
По завершении сборки перейдите к окну Console output (Вывод на консоль). Вы увидите, что сборка выполнена в агенте Azure удаленно.