Вопрос или проблема
Будет ли работать Jenkins Linux мастер с агентом сборки на Windows? Кто-нибудь знает, возможно ли такое решение и поддерживается ли оно? Я просто ищу доказательство концепции, что это возможно, чтобы я мог продолжить настройку. Спасибо.
ОБНОВЛЕНИЕ: На дату 2024-09-09, плагин WMI Windows Agents официально устарел.
Используйте SSH Build Agents или плагин Windows Cloud для Jenkins, который использует WinRM, более современное решение для удаленного управления.
Да, это очень распространенная конфигурация и хорошо задокументирована на сайте Jenkins. Просто установите WMI Windows Agents (или windows-slaves). Мы использовали это с Jenkins 1.408.1 / 2013 до последней версии (2.289.2) на серверах VM от W2K8 до W2K16.
Ранее мы запускали через JNLP, но переключились на запуск через DCOM и не имели проблем, так как это проще в управлении (аналогично ssh / linux agents).
Теперь также доступны Docker-образы.
Ответ или решение
Jenkins Master на Linux и Windows Build Agent
Введение
Конфигурация Jenkins, где мастер работает на одной операционной системе (например, Linux), а агенты сборки — на другой (например, Windows), является распространенной практикой в современных CI/CD пайплайнах. Это позволяет использовать лучшее из обеих систем, а также может повысить производительность и гибкость ваших операций.
Поддержка комбинации Linux Master и Windows Agent
По состоянию на сентябрь 2024 года, подход, при котором Jenkins мастер работает на Linux, а агенты сборки на Windows, полностью поддерживается и задокументирован в официальной документации Jenkins. Настройка такого окружения может быть достигнута с использованием различных плагинов, несмотря на недавнюю депрекацию плагина WMI Windows Agents.
Так как же это работает?
-
SSH Build Agents:
Плагин SSH Build Agents позволяет организовать соединение через SSH, что делает процесс более безопасным и привычным для администраторов систем. С помощью этого плагина можно управлять Windows-агентами так же, как и Linux-агентами. -
Windows Cloud Plugin:
Также можно использовать Windows Cloud Plugin, который использует WinRM (Windows Remote Management) для управления Windows-агентами. Это современное решение для удаленного администрирования, которое рекомендуется использовать вместо устаревших методов.
Доказательства концепции
Чтобы подтвердить работоспособность этой конфигурации, можно реализовать следующий тестовый сценарий:
-
Установка Jenkins на Linux:
Установите Jenkins на сервере с операционной системой Linux, следуя официальной инструкции. -
Настройка Windows Build Agent:
На Windows-машине установите необходимый плагин для SSH или Windows Cloud. Убедитесь, что WinRM или SSH-сервер правильно настроены и доступны. -
Подключение агента:
В интерфейсе Jenkins добавьте новый узел (агент), выбрав соответствующий метод подключения (SSH или WinRM). Укажите необходимые параметры, такие как IP-адрес, учетные данные и путь к исполняемому файлу Java, если это необходимо. -
Тестирование интеграции:
Создайте простейший проект на Jenkins, который будет использовать Windows-агент для выполнения сборки, например, простую командуdir
илиecho
. Убедитесь, что сборка запускается и выполняется без ошибок.
Заключение
Итак, использование Jenkins Master на Linux совместно с Windows Build Agent — это полностью реализуемая и поддерживаемая конфигурация. Технологии, такие как SSH и WinRM, упрощают управление кросс-платформенными средами, сохраняя при этом безопасность и производительность.
Данная настройка не только позволяет использовать возможности обеих операционных систем, но и создает гибкую и расширяемую инфраструктуру для DevOps-процессов. Вы можете уверенно продвигаться вперед с реализацией данной конфигурации.