Запуск Jenkins Node / Agent в качестве службы Windows с OpenJDK - PullRequest
2 голосов
/ 12 октября 2019

У меня установлена ​​виртуальная машина Windows с OpenJDK 13, которую я хотел бы настроить в качестве узла / агента Jenkins.

Когда я создаю конфигурацию узла с помощью пользовательского интерфейса Jenkins и выбираю метод запуска: Запуск агента поподключая его к мастеру, он предоставляет ссылку для загрузки slave-agent.jnlp

В системе с исходным jdk / jre более старой, чем версия 9, которая содержит запуск через Java, если я запускаю этот файл jnlp, онвызывает окно с меню, которое включает опцию Файл - Установить как службу

Однако, поскольку OpenJDK (и я считаю, что любые версии JRE / JDK, превышающие 8) НЕ содержат Java Web Start, я не могу показатьсячтобы получить доступ к этой опции.

Я могу успешно запустить java -jar agent.jar -jnlpUrl https://jenkinsserver/blah/slave-agent.jnlp -secret blah -workDir "somedirectory" и получить регистр узла с Jenkins, ноон не работает как служба.

У меня был более старый агент, который все еще использовал старую версию JRE, поэтому я посмотрел на его конфигурацию службы Jenkinsи, к сожалению, он, кажется, полагается на исполняемые файлы, файлы .config и файлы XML, которые я не могу определить источник, кроме того, что они должны быть созданы при выполнении инструкций «Установить как службу»from slave-agent.jnlp

Я также пытался использовать IcedTea-Web, который, по-видимому, должен был заменить Java Web Start, но я не добился успеха.

Может кто-нибудь сказать мнеКак настроить машину Windows, на которой работает OpenJDK, как узел / агент Jenkins с компонентами узла / агента Jenkins, работающими как служба Windows?

Ответы [ 2 ]

0 голосов
/ 14 октября 2019

Если вы хотите настроить базовое приложение Java в качестве службы, я считаю, что лучшим вариантом будет использование Procrun из Apache . Это именно тот метод, который использует Tomcat.

0 голосов
/ 14 октября 2019

У меня была похожая проблема, и теперь я использую NSSM .

  1. Загрузить NSSM
  2. Открыть cmd и установить службу (я использовал JenkinsService в качестве имени службы):
    <path to nssm.exe>\nssm install <Servicename>
    
  3. Вставитьпуть к jdk к полю Path
  4. добавьте остаток к полю Arguments:
    -jar agent.jar -jnlpUrl https://jenkinsserver/blah/slave-agent.jnlp -secret blah -workDir "somedirectory"
    
  5. Нажмите на установку службы

Теперь вы можете проверить новый сервис JenkinsService в диспетчере служб Windows. Как только он запустится, вы можете проверить соединение с мастером.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...