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

Jenkins. Часть 3. Windows Servers!

Оглавление

Подробная инструкция по подключению Jenkins Slave Node на Windows Server двумя способами!

В данной статье мы рассмотрим, как добавить Jenkins Slave Node (узел Jenkins) на сервер Windows Server двумя различными способами:

1. С помощью стандартного Java Agent (используется встроенная функциональность Jenkins).

2. С помощью OpenSSH-подключения (более сложный вариант, обеспечивающий безопасность передачи данных).

Эти методы позволяют эффективно увеличить вычислительные мощности Jenkins путем добавления новых узлов, распределяющих рабочую нагрузку.

Что такое Jenkins Slave Node?

Slave Node (агент Jenkins) — это дополнительный узел в инфраструктуре Jenkins, предназначенный для выполнения сборочных задач, тестов и иных операций, связанных с CI/CD-процессами. Обычно используется, когда нагрузка на главный сервер становится высокой или требуется специфическое окружение для конкретного типа задач.

Метод №1: Подключение с помощью Java Agent

Это самый распространенный и удобный способ добавления Jenkins Slave Node. Давайте посмотрим, как его реализовать.

Шаги по подключению Java Agent:

Шаг 1. Подготовьте систему

Убедитесь, что на целевом сервере Windows Server установлены необходимые компоненты:

- Java JRE/JDK: Убедитесь, что на сервере установлен пакет Java (желательно последняя версия JDK).

Проверить наличие Java можно через командную строку:

java -version

Если команда возвращает версию Java, значит установка прошла успешно.

- Антивирусные программы: Иногда антивирусы блокируют подключение Jenkins-клиентов. Рекомендуется временно отключить защиту, если возникли проблемы с соединением.

Шаг 2. Добавление узла в Jenkins Master

1. В главном интерфейсе Jenkins перейдите в раздел Manage Jenkins > Manage Nodes and Clouds.

2. Кликните на кнопку New Node.

3. Задайте имя узла (например, windows-slave) и выберите тип узла Permanent Agent.

4. Определите количество экземпляров (Instance Cap), доступные этому узлу.

5. Оставьте другие поля пустыми и нажмите Save.

Шаг 3. Скачайте jar-файл агента

После сохранения на экране появится ссылка для загрузки файла агента (jenkins-agent.jar). Его необходимо сохранить на целевой сервер Windows Server.

Шаг 4. Настройка запуска агента

Выберите один из двух способов запуска:

A. Запуск вручную через командную строку

Запустите командную строку на сервере Windows и выполните команду:

java -jar jenkins-agent.jar -jnlpUrl http://your-jenkins-master.com/computer/windows-slave/slave-agent.jnlp -secret YOUR_SECRET_KEY

Замените:

- `your-jenkins-master.com` на реальный IP-адрес или доменное имя вашего Jenkins-мастера.

- `windows-slave` на имя вашего нода.

- `YOUR_SECRET_KEY` на значение ключа безопасности, которое выдаётся при создании узла.

B. Автоматический запуск через сервис Windows

Лучше создать службу Windows, чтобы агент запускался автоматически при старте системы:

1. Установите программу NSSM (Non-Sysadmin Service Manager), если ещё не сделали этого.

2. Откройте командную строку и создайте службу:

nssm install JenkinsAgentService java -jar C:\PathTo\JenkinsAgent\jenkins-agent.jar -jnlpUrl http://your-jenkins-master.com/computer/windows-slave/slave-agent.jnlp -secret YOUR_SECRET_KEY

3. Включите службу через диспетчер служб или командой:

net start JenkinsAgentService

Шаг 5. Проверка статуса

Перепроверьте состояние агента в интерфейсе Jenkins. Если соединение установлено успешно, напротив имени узла появится зеленый индикатор.

---

Метод №2: Подключение с помощью OpenSSH

OpenSSH-подключение позволяет повысить уровень безопасности при передаче данных между узлами Jenkins. Однако настройка SSH немного сложнее, чем использование Java Agent.

Шаг 1. Установка OpenSSH на сервер Windows

1. В диспетчере серверов включите роль OpenSSH Client и OpenSSH Server.

2. Активируйте службу SSHD и убедитесь, что порты открыты (обычно 22).

Шаг 2. Генерация ключей SSH

Создайте пару SSH-ключей на сервере Windows:

ssh-keygen -t rsa

Скопируйте публичный ключ (id_rsa.pub) и вставьте его в интерфейс Jenkins в разделе настройки узла.

Шаг 3. Настройка SSH-доступа в Jenkins

1. Вернитесь в раздел Manage Jenkins > Manage Nodes and Clouds.

2. Создайте новый узел аналогично предыдущему методу, но теперь укажите способ запуска Launch method: Launch slaves via SSH.

3. Укажите данные подключения:

- Hostname/IP-адрес целевого сервера.

- Имя пользователя (обычно Administrator или специально созданная учётная запись).

- Порт SSH (по умолчанию 22).

- Тип аутентификации (Private key + paste the public key into the appropriate field in Jenkins UI).

Шаг 4. Настройка доверенного хоста

Необходимо разрешить вашему Jenkins-мастеру доверять хосту, на котором запущен SSH-агент:

cat /etc/ssh/ssh_known_hosts

Должен присутствовать отпечаток открытого ключа целевого сервера.

Шаг 5. Протестируйте связь

Попытайтесь подключиться к узлу через SSH вручную с Jenkins-мастера:

ssh user@target-windows-host

Если соединение прошло успешно, возвращайтесь в интерфейс Jenkins и повторите попытку подключения узла.

Заключение

Мы рассмотрели два метода подключения Jenkins Slave Node на сервер Windows Server:

1. Простое и быстрое подключение с помощью Java Agent.

2. Более безопасный способ с использованием OpenSSH-подключения.

Каждый из методов имеет свои преимущества и недостатки. Выбор зависит от уровня необходимой защиты и требований к отказоустойчивости. Первый метод удобен для быстрого разворачивания и небольших сред, второй — идеален для крупных инфраструктур, требующих высокого уровня защищённости данных.

Игорь Сотников | Дзен