Найти в Дзене
Игорь Сотников

Jenkins. Часть1. Slave node.

Jenkins - довольно таки известный продукт , который используется для разрабоки CI/CD процесов, автоматизации. Продукт очень гибкий имеет большое количество плагинов. Jenkins - это java приложение. У него есть управляющая нода или Master node и Slave node или ноды на которых выполняются задачи. Установку данного продукта я уже описывал в видео, но для того, чтобы продукт полноценно работал необходима вторая часть agents или Slave node, как установить, как настроить. Причем автоматизация может выполнятся, как Unix подобных ОС, так и для MS windows Операционных систем. В статье постараюсь описать подробно установку и рабочую схему для обоих типов операционных систем. 1. Добавление Slave ноды в Jenkins MasterNode. На главной странице слева в столбце выбираем настроить Jenkins. Заходим в управление сборками сред. Выбираем новая нода. На следующей вкладке вводим название ноды и проставляем отметку, что это постоянный агент. Далее мы попадем на экран настройки агента, тут для разных ОС нас

Jenkins - довольно таки известный продукт , который используется для разрабоки CI/CD процесов, автоматизации. Продукт очень гибкий имеет большое количество плагинов. Jenkins - это java приложение. У него есть управляющая нода или Master node и Slave node или ноды на которых выполняются задачи. Установку данного продукта я уже описывал в видео, но для того, чтобы продукт полноценно работал необходима вторая часть agents или Slave node, как установить, как настроить. Причем автоматизация может выполнятся, как Unix подобных ОС, так и для MS windows Операционных систем. В статье постараюсь описать подробно установку и рабочую схему для обоих типов операционных систем.

1. Добавление Slave ноды в Jenkins MasterNode.

На главной странице слева в столбце выбираем настроить Jenkins. Заходим в управление сборками сред.

-2

Выбираем новая нода.

-3

На следующей вкладке вводим название ноды и проставляем отметку, что это постоянный агент.

Далее мы попадем на экран настройки агента, тут для разных ОС настройка будет по разному.

Для Linux систем:

-4

Обратите внимание на ключевые вещи:

Количество процессов - исполнителей, это максимально возможное число тасков , которые будут выполнятся на ноде, остальные будут ожидать в очереди. Данная цифра - это вопрос ресурсов выделеных ноде исполнителю.

Метка - это метка по которой в задаче мы будем указывать на какой slave node исполнять задачу.

Launch via ssh - мы говорим, что Slave node будет подключаться по ssh и далее указываем параметры подключения ip , пользователь и пароль. Крайне важно, чтобы такой пользователь на Slave node существовал и был с правильным паролем. Если у вас поле Credential пустое, то необходимо довабить с помощью кнопки add.

Для Windows систем:

-5

Основные настройки все те же, но

Удаленная корневая директория - та директория, куда необходимо в последствии положить jar файл агента. В ходе экспериментов из - за разных настроек я убедился , что директорию указывать все же необходимо, но использовать везде полные пути иначе при не одинаковых настройках в windows ломается схема.

Указываем метку , она работает так же, как и для linux системы.

Способ запуска, определяем как Запустить агент подключив его к контролеру.

-6

Оставляем директорию для внутренних данных и проставляем пару галочек ниже. Нажимаем кнопку сохранить

Далее нам необходимо получить данные для подключения. Находим в списке наш slave node и нажимаем на шестеренку справа напротив.

-7

В верху слева выбираем статус и получаем 2 варианта подключения. Но по сути одни и те же.

Следующий шаг настройка на самих slave node.

Для linux:

1. Создание пользователя sudo adduser nameuser

2. Выдача прав на работу с повышенными привелегиями sudo usermod -aG sudo username

3. Установка пароля sudo passwd username и двух кратный ввод пароля

4. Создание домашней директории sudo mkhomedir_helper username

5. Далее на машину необходимо поставить java. sudo apt-get install openjdk-11-jdk

6. Проверить, что Java установилась java -version.

Далее магия сама свершится и агент установится на машину.

Для Windows:

Тут все сложнее, но настраиваемо.

1. Создаем директорию , например c:\agent , она должна совпадать с той , что мы указали при настройке на Master node.

2. Внутри этой директории создаем еще одну remoting, при настройке на Master node мы ее тоже указывали.

3. Необходимо на Windows машину установить яву. Я брал отсюда. Можно взять и из другого места , как вам будет удобно должно работать.

4.Далее создаем bat файл и помещаем туда команду для запуска , мы ее получили когда переходили в статус узла на Master node. Сохраняем.

5. Теперь необходимо, чтобы этот батник запускался автоматически в фоне и не зависил от сенса. Иначе у нас нода будет отваливаться от мастера. Открываем Планировщик и добавляем задачу на запуск батника с наивысшими привелегиями при загрузке ОС. И перезагружаем сервер.

Все должно запустится и Master со Slave нодой должны синхранизироваться.

Но есть нюанс, если вы используете купленные\самоподписаные сертификаты для jenkins и протокол https. У вас при запуске батника может выдать , что java не может соеденится с Мастером из за не доверия к сертификату. Эту проблему можно пофиксить добавив цепочку сертификатов в доверенную ключницу на локальной Slave ноде. Это делается следующим образом:

1. Надо определить где находится ключница java

2. Необходимо найти файл с полной цепочкой сертификатов. (Как получить файл с полной цепочкой, я описывал в статьях на канале SSL+Vault+Servers. Часть 1 и Часть 2).

3. Открыть powershell или консоль и выполнить команду:

keytool -import -noprompt -trustcacerts -alias s3 -file C:\dst\ssl\fullchain.pem -keystore "C:\Program Files\BellSoft\LibericaJDK-11\lib\security\cacerts" -storepass changeit

Где очевидно видно, что путь к файлу fullchain.pem - это путь к файлу с цепочкой, а путь к файлу cacerts - путь к ключницы java. После этого перезапустить сервер.

#DevOPs #OpenSource #SSL #Java #Jenkins