Jenkins настройка · 5 min read · Dec 19, 2025

Как настроить Jenkins Master и Slave на Ubuntu

Jenkins — это сервер автоматизации, ответвленный от проекта Hudson. Он поддерживает множество систем управления версиями (SCM), включая Git, SVN и Mercurial. Jenkins предоставляет сотни плагинов для автоматизации вашего проекта. Jenkins предлагает поддержку архитектуры ‘master/slave’, позволяя ему хостить большое количество сборок проектов.

Как работает ‘master/slave’ Jenkins?

Архитектура master/slave Jenkins используется для распределенных сред сборки, где нагрузка по сборке проектов распределяется на несколько узлов-агентов, и мы можем использовать разные среды для каждой сборки.

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

Узлы-слейвы Jenkins настраиваются для разгрузки сборки проектов от мастера, и требуется установленное соединение между мастером и слейвами. Узлы-слейвы Jenkins могут работать на различных операционных системах, таких как Windows и Linux, и нет необходимости устанавливать полные пакеты Jenkins на них.

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

Предварительные требования

  • Ubuntu Server (Ubuntu 22.04 - Ubuntu 16.04) - мастер - 10.0.15.10
  • slave01 - 10.0.15.21
  • slave02 - 10.0.15.22
  • Права root

Что мы будем делать?

  1. Установить Jenkins Master
  2. Настроить учетные данные Jenkins Master
  3. Настроить узлы-агенты Slave
  4. Добавить новые узлы-слейвы
  5. Подготовить узлы-агенты Slave для выполнения сборки
  6. Тестирование

Шаг 1 - Установить Jenkins Master

В этом учебнике мы не будем рассматривать базовую установку Jenkins. Несколько статей на HowtoForge охватывают установку Jenkins.

  • Установить Jenkins на Ubuntu 16.04
  • Установить Jenkins на Ubuntu 18.04
  • Установить Jenkins на Ubuntu 20.04
  • Установить Jenkins на Ubuntu 22.04
  • Установить Jenkins на CentOS 7

Следующий наш сервер Ubuntu с установленным Jenkins.

Установить Jenkins Master

Шаг 2 - Настроить учетные данные Jenkins Master

Когда вы установите сервер Jenkins master, нам нужно настроить сам сервер master. По умолчанию есть разные способы запуска узлов-агентов Jenkins, мы можем запускать узлы-агенты через SSH, административную учетную запись Windows и через Java Web Start (JNLP), выберите лучший способ в зависимости от вашей конфигурации среды и операционной системы.

Для этого руководства мы запустим узлы-агенты через ssh, и нам нужно настроить учетные данные Jenkins на нашем сервере master.

Генерация SSH-ключа

Мы будем использовать аутентификацию по SSH-ключу для настройки наших узлов-агентов, поэтому нам нужно сгенерировать SSH-ключ для пользователя Jenkins, а затем вручную загрузить ключ на каждый серверный узел с помощью ‘ssh-copy-id’.

На сервере Jenkins master войдите в систему как пользователь Jenkins и сгенерируйте SSH-ключ.

su - jenkins  
ssh-keygen

И вы получите закрытый ключ ‘id_rsa’ и открытый ключ ‘id_rsa.pub’ в директории ‘.ssh’.

Генерация SSH-ключа

Настройка учетных данных в Jenkins

Откройте панель управления Jenkins и нажмите на меню ‘Credentials’ слева.

Настройка учетных данных в Jenkins

И нажмите на ссылку ‘global’.

Теперь нажмите ‘Add Credentials’.

Добавить учетные данные

Теперь выберите метод аутентификации.

  • Kind: SSH Username with private key
  • Scope: Global
  • Username: jenkins
  • Private key: Введите напрямую и вставьте закрытый ключ ‘id_rsa’ пользователя Jenkins с сервера master.

Нажмите ‘OK’.

выбор метода аутентификации

И учетные данные Jenkins с методом аутентификации SSH-ключа были созданы.

Учетные данные Jenkins с методом аутентификации SSH-ключа были созданы

Шаг 3 - Настроить узлы-слейвы

Теперь мы настроим серверы узлов-слейвов, установив Java на этих серверах и создав нового пользователя Jenkins.

Установить Java

Установите пакеты ‘software-properties-common’ и добавьте репозиторий PPA для Java.

sudo apt install software-properties-common apt-transport-https -y  
sudo add-apt-repository ppa:openjdk-r/ppa -y

Теперь установите Java OpenJDK с помощью команды apt ниже.

sudo apt install openjdk-8-jdk -y

После завершения установки проверьте установленную версию Java.

java -version

И вы получите установленный Java OpenJDK 1.8 в системе.

Добавить нового пользователя Jenkins

Теперь добавьте пользователя ‘Jenkins’ на все узлы-агенты.

Выполните команду ниже.

useradd -m -s /bin/bash jenkins  
passwd Jenkins

Пользователь ‘Jenkins’ для узлов-агентов был создан.

Добавить нового пользователя Jenkins

Копировать SSH-ключ с мастера на слейв

Далее мы должны загрузить ключ ‘id_rsa.pub’ с мастера на узлы серверов-слейвов. Мы должны загрузить на каждый серверный узел, используя команду ‘ssh-copy-id’, как показано ниже.

ssh-copy-id [email protected]  
ssh-copy-id [email protected]

Введите пароль пользователя Jenkins.

SSH-ключ ‘id_rsa.pub’ был загружен на все узлы-агенты.

Копировать SSH-ключ с мастера на слейв

Шаг 4 - Добавить новые узлы-слейвы

На панели управления Jenkins нажмите меню ‘Manage Jenkins’, а затем нажмите ‘Manage Nodes’.

Добавить новые узлы-слейвы

Нажмите ‘New Node’.

Новый узел

Введите имя узла ‘slave01’, выберите ‘permanent agent’ и нажмите ‘OK’.

имя узла

Теперь введите детали информации узла.

  • Description: сервер-агент узла slave01
  • Remote root directory: /home/jenkins
  • Labels: slave01
  • Launch method: Запустить агента-слейва через SSH, введите IP-адрес хоста ‘10.0.15.21’, выберите аутентификацию с использованием учетных данных ‘Jenkins’.

информация о узле

Теперь нажмите кнопку ‘Save’ и дождитесь, пока сервер master подключится ко всем узлам-агентам и запустит службы агентов.

Ниже приведены результаты, когда сервер master подключен ко всем узлам-агентам.

сервер master подключен ко всем узлам-агентам

Узлы-слейвы Jenkins были добавлены на сервер master.

Шаг 5 - Подготовить узлы-агенты Slave для выполнения сборки

На этом этапе мы настроим Jenkins master для выполнения сборки на узлах-агентах слейвов.

Нажмите на меню ‘Manage Jenkins’, а затем нажмите ‘Configure System’.

Подготовить узлы-агенты Slave для выполнения сборки

Теперь перейдите в раздел ‘Slave Setups’ и определите все, что вам нужно, как показано ниже.

раздел 'Slave Setups'

Больше информации о ‘Slave Setups’ по ссылке.

Нажмите кнопку ‘Save’, и теперь мы готовы выполнять сборку на узлах-агентах слейвов.

Шаг 6 - Тестирование

Теперь мы хотим создать новую простую сборку для Jenkins и выполнить сборку на обоих узлах-агентах ‘slave01’ и ‘slave02’.

На панели управления Jenkins нажмите меню ‘New Item’.

Тестирование Jenkins

Введите имя элемента, выберите проект freestyle и нажмите ‘OK’.

Добавить проект Freestyle

В общем разделе введите описание задания и отметьте опцию ‘Ограничить, где этот проект может быть запущен’.

В ‘Label Expression’ укажите узел, например, ‘slave01’.

Выбор узла

Перейдите в раздел сборки и выберите опцию ‘Execute shell’, введите команду, как показано ниже.

top -b -n 1 | head -n 10 && hostname

Нажмите кнопку ‘Save’, и вы будете перенаправлены на страницу задания.

Страница задания

Нажмите ‘Build Now’, чтобы собрать проект, а затем нажмите элемент в разделе ‘Build History’.

Собрать сейчас

И следующее — это мой результат.

Сборка на узле-агенте ‘slave01’.

Результат скрипта Jenkins

Сборка на узле-агенте ‘slave02’.

Сборка на узле 02

Установка и настройка архитектуры master/slave Jenkins и распределенных сборок Jenkins были успешно завершены.

Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.