Запуск Windows Дженкинс Агенты без JNLP
Создан новый Windows Server 2016, который будет использоваться в качестве мишени для оркестрованных сборок jenkins. Мы больше не должны использовать oracle java, поэтому я получил coretta openJDK. OpenJDK больше не поддерживает челюсти. Исполняемый файл не поставляется с ним. Я видел некоторые скриптовые обходные пути, но они не работают и плохо написаны для загрузки.
Что мы должны использовать для запуска ведомых агентов на машинах Windows?
3 ответа
Я считаю, что @Mike имел в виду: установить Slave как службу Windows (версия cmd), которая не нуждается в JNLP/javaws.
ИЛИ, в Jenkins 2 (мы используем 2.121.1 плюс агенты WMI Windows (также известные как windows-slave:1.4), теперь есть опция "Разрешить Jenkins управлять этим ведомым Windows как службой Windows", по сути, так же, как узел Linux.
Вы должны иметь учетную запись администратора (и пароль). Мы должны были следовать указаниям для редактирования реестра, когда " агенты Windows не запускаются через DCOM" (Руководство для Server 2012), чтобы удаленно управлять службой. Пока, похоже, работает хорошо, YMMV. До сих пор, кажется, работает хорошо, никаких "тонких проблем"; YMMV.
Для записей:
- HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Wow6432Node \ CLSID {72C24DD5-D70A-438b-8A42-98424B88AFB8}
- HKEY_CLASSES_ROOT\CLSID{76A64158-CB41-11D1-8B02-00600806D9B6}
(Есть несколько совпадений для ключей; просто измените два указанных местоположения)
- Запустите "regedit" (от имени администратора)
- Найдите (Ctrl+F) следующий раздел реестра: "{72C24DD5-D70A-438B-8A42-98424B88AFB8}" в HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\
- Щелкните правой кнопкой мыши и выберите "Разрешения"
- Сменить владельца на группу администраторов (Дополнительно...).
- Изменить разрешения для группы администраторов. Предоставить полный контроль.
- Сменить владельца обратно на TrustedInstaller (пользователь - "NT Service\TrustedInstaller" на локальном компьютере)
- Повторите шаги 1-6 для HKEY_CLASSES_ROOT\CLSID{76A64158-CB41-11D1-8B02-00600806D9B6}
- Перезапустите службу удаленного реестра (административные инструменты / службы)
Есть несколько способов реализовать это, но так как это сервер Windows, вы можете выполнить шаги на https://github.com/kohsuke/winsw/blob/master/doc/installation.md#winsw-installation-guide для установки jenkins slave как сервис без челюсти.
Для меня самым простым и лучшим рабочим решением для запуска агентов Windows Jenkins без JNLP было запускать в командной строке команду java -jar agent.jar ... Параметры команды следует брать из url-адреса агента:
http://your_jenkins_url/computer/your_agent_name_or_ip/
Я загрузил agent.jar на свой компьютер, переместил его в желаемый каталог, запустил командную строку из каталога, в который был перемещен agent.jar, и выполнил предложенную команду с соответствующими параметрами.
В моем случае:
java -jar agent.jar -jnlpUrl http://your_jenkins_url/computer/your_agent_name_or_ip/slave-agent.jnlp -secret 76986574e97c2b635c7076740dc93326eaaf5a3ad30573144915489a1ccfee44 -workDir "D:\jenkins"
Это был один из предлагаемых подходов в документации здесь - https://www.jenkins.io/doc/administration/requirements/upgrade-java-guidelines/
Запуск Java из Интернета. Запуск из Интернета из Интернета был удален из Java 11. Когда контроллер Jenkins работает на Java 11, кнопка запуска из Интернета больше не отображается в пользовательском веб-интерфейсе. Агенты для сервера Jenkins Java 11 не могут быть запущены из файла * .jnlp, загруженного в веб-браузер.
Планов по замене этой функции нет. Подключайте агентов к Jenkins на Java 11 с помощью таких плагинов, как SSH Build Agents Plugin, с вызовами командной строки операционной системы для java -jar agent.jar или с помощью контейнеров.