Перейти к основному содержимому

Настройка подчиненного узла Jenkins

· 4 мин. чтения

1. Обзор

В этом руководстве мы рассмотрим концепцию распределенных сборок в архитектуре Jenkins. Кроме того, мы узнаем, как настроить архитектуру Jenkins master-slave . Кроме того, мы создадим конвейер на главном сервере Jenkins для запуска заданий сборки на подчиненных узлах.

2. Распределенные сборки

В идеале машина, на которую мы устанавливаем стандартный Jenkins, будет нашим мастером Jenkins . На машине подчиненного узла мы установим программу времени выполнения под названием Agent. Установка агента не будет стандартной установкой Jenkins, но этот агент будет работать на JVM. Его возможностей достаточно для запуска подзадачи или основной задачи Jenkins в выделенном исполнителе:

./5d256212da9f1169c084dca1a1b73664.jpg

У нас может быть любое количество узлов-агентов или подчиненных узлов . Кроме того, мы можем настроить главный узел, чтобы решить, какая задача или задание должны выполняться на каком агенте и сколько агентов-исполнителей мы можем иметь. Связь между ведущими и подчиненными узлами Jenkins является двунаправленной и осуществляется по протоколу TCP/IP .

3. Настройка главных и подчиненных узлов Jenkins

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

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

Прежде чем мы начнем, давайте еще раз проверим, что у нас есть все необходимые условия для добавления подчиненного узла :

  • Сервер Jenkins запущен и готов к использованию.
  • Другой сервер для конфигурации подчиненного узла
  • Сервер Jenkins и подчиненный сервер подключены к одной сети.

Чтобы настроить главный сервер, мы войдем на сервер Jenkins и выполним следующие действия.

Во-первых, мы перейдем к «Управление Jenkins -> Управление узлами -> Новый узел», чтобы создать новый узел :

./a0fa2dbcbbda15691beb73a777f645a1.png

На следующем экране мы вводим «Имя узла» (slaveNode1), выбираем «Постоянный агент», затем нажимаем «ОК» :

./0770df0fa864e1088301db4c3e934525.png

После нажатия «ОК» мы попадем на экран с новой формой, где нам нужно заполнить информацию о ведомом узле . Мы предполагаем, что подчиненный узел работает в операционных системах Linux, поэтому метод запуска установлен на «Запуск агентов через ssh» .

Точно так же мы добавим соответствующие детали, такие как название, описание и количество исполнителей.

Мы сохраним нашу работу, нажав кнопку «Сохранить» . «Ярлыки» с именем «slaveNode1» помогут нам настроить задания на этом ведомом узле:

./57a1900101c3001ccb186f5810635707.png

4. Сборка проекта на подчиненных узлах

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

Для этого мы начнем с нажатия «Новый элемент» в верхнем левом углу панели инструментов.

Далее нам нужно ввести название нашего проекта в поле «Введите имя элемента» и выбрать «Конвейерный проект», после чего нажать кнопку «ОК».

На следующем экране мы введем «Описание» (необязательно) и перейдем к разделу «Конвейер». Убедитесь, что в поле «Определение» выбран параметр «Сценарий конвейера».

После этого мы копируем и вставляем следующий декларативный скрипт конвейера в поле «скрипт»:

node('slaveNode1'){
stage('Build') {
sh '''echo build steps'''
}
stage('Test') {
sh '''echo test steps'''
}
}

Далее нажимаем на кнопку «Сохранить». Это перенаправит вас на страницу просмотра Pipeline.

На левой панели мы нажимаем кнопку «Build Now», чтобы выполнить наш Pipeline. После завершения выполнения Pipeline мы увидим представление Pipeline:

./06693c9e6584be7ffc1dfbecee12568a.png

Мы можем проверить историю выполненной сборки в разделе «История сборки», щелкнув номер сборки . Как показано выше, когда мы нажимаем на номер сборки и выбираем «Консольный вывод», мы видим, что конвейер работает на нашей машине slaveNode1 .

5. Вывод

В этом руководстве мы рассмотрели, что такое распределенная сборка в Jenkins, и увидели, как главный узел Jenkins вызывает подчиненные узлы. Кроме того, мы узнали, как настроить конфигурацию Jenkins master-slave. Наконец, мы проверили конфигурацию подчиненного узла.