Агентам Jenkins не удается подключиться после обновления с версии 2.7.2 до 2.107.2 - PullRequest
0 голосов
/ 07 мая 2018

Я недавно обновил сервер jenkins с версии 2.7.2 до 2.107.2 в Windows Server Standard 2016 (как сервер, так и агент). После этого все продолжало работать, пока я не перезапустил одного из агентов. Служба Windows jenkins на агенте продолжает сбой и сообщает следующее в файле журнала ошибок:

Mai 07, 2018 5:59:34 PM hudson.remoting.jnlp.Main createEngine
INFO: Setting up slave: dsvjenkins4
Mai 07, 2018 5:59:34 PM hudson.remoting.jnlp.Main$CuiListener <init>
INFO: Jenkins agent is running in headless mode.
Mai 07, 2018 5:59:34 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Locating server among [https://dsvjenkins1/]
Mai 07, 2018 5:59:34 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Handshaking
Mai 07, 2018 5:59:34 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connecting to dsvjenkins1:16923
Mai 07, 2018 5:59:34 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Trying protocol: JNLP3-connect
Mai 07, 2018 5:59:34 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Server didn't accept the handshake: Disabled protocol:Protocol:JNLP3-connect
Mai 07, 2018 5:59:34 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connecting to dsvjenkins1:16923
Mai 07, 2018 5:59:34 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Trying protocol: JNLP2-connect
Mai 07, 2018 5:59:34 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Server didn't accept the handshake: Disabled protocol:Protocol:JNLP2-connect
Mai 07, 2018 5:59:34 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connecting to dsvjenkins1:16923
Mai 07, 2018 5:59:34 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Trying protocol: JNLP-connect
Mai 07, 2018 5:59:34 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Server didn't accept the handshake: Disabled protocol:Protocol:JNLP-connect
Mai 07, 2018 5:59:34 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connecting to dsvjenkins1:16923
Mai 07, 2018 5:59:34 PM hudson.remoting.jnlp.Main$CuiListener error
SEVERE: The server rejected the connection: None of the protocols were accepted
java.lang.Exception: The server rejected the connection: None of the protocols were accepted
    at hudson.remoting.Engine.onConnectionRejected(Engine.java:335)
    at hudson.remoting.Engine.run(Engine.java:307)

Я попытался удалить и установить агентскую службу, подключившись к новому серверу jenkins. Это начинается с Java Web Start. Но мне нужно, чтобы он работал как служба Windows. Я перезапустил агент после переустановки агента в качестве службы. Позже я узнал, что это был не один агент. Все агенты будут затронуты после перезагрузки.

Что я мог сделать, чтобы решить эту проблему?

[Update]
Jenkins 2.107.2 помог мне с некоторыми улучшениями после установки. Одним из них было отключение небезопасных протоколов JNLP. JNLP1, JNLP2 и JNLP3 были отключены. Поскольку квитирование с агентами уже произошло, связь между сервером и агентом будет по-прежнему основываться на одном из этих отключенных протоколов, пока агент не будет перезапущен. В итоге я снова включил все протоколы, а затем отключил один за другим, чтобы выяснить, какой из них наиболее безопасен и работает. Когда JNLP3 и JNLP4 включены, а JNLP1 и JNLP2 включены, все еще работает.
Это подводит меня к следующему вопросу: как я могу установить связь между мастером и агентом только по протоколу JNLP4?

1 Ответ

0 голосов
/ 02 октября 2018

Я решил проблему, заново загрузив файл agent.jar с сервера Jenkins, а затем перезапустив ведомое устройство. Пример:

$ wget http://[servername:port]/jenkins/jnlpJars/agent.jar

$ java -jar agent.jar -jnlpUrl http://[servername:port]/jenkins/computer/[slave-name]/slave-agent.jnlp

Это позволило ведомому Jenkins запускаться с использованием JNLP4.

...