As the Title already states JNLP Connections are Deprecated Jenkins also gives a Message and a Hyperlink to
https://en.wikipedia.org/wiki/Java_Web_Start#Deprecation
So whats now the recommended way attaching a Windows Slave to Jenkins, there seems to be no real good guide on https://jenkins.io covering that topic.
In order to setup a windows-slave agent you need to first Enable the JNLP Agents : Go to Manage Jenkins -> Configure Global Security -> under Agents section -> TCP port for inbound agents -> select Random ->Save.
Go to “Build Executor Status” on the left sidebar and open jk_test. Click on “ slave. jar” and save it into the “jenkins” folder that we previously created on the slave machine.
JNLP Connections are deprecated in Jenkins what is the new recommended way connecting a windows slave to jenkins? - Stack Overflow JNLP Connections are deprecated in Jenkins what is the new recommended way connecting a windows slave to jenkins? Bookmark this question.
That image name is deprecated, use jenkins/jnlp-slave. This is an image for Jenkins agent (FKA "slave") using JNLP to establish connection. This agent is powered by the Jenkins Remoting library, which version is being taken from the base Docker Agent image.
If you miss this, you might not be able to start/configure the Jenkins slave because, by default, Jenkins disabled the TCP Port for JNLP agents and due to this, Agent is not able to reach master. 12- You will see Agent is not able to reach the master Jenkins and the new jnlp jar can be downloaded from Jenkins
Apply that change. Then goto Configure Jenkins -> Manage Nodes -> create new node or configure node Choose the setting "Launch agent by connecting it to the controller" under Launch Method. The phrasing has been improved significantly in the user interface by removing the references to "JNLP".
There is an open source replacement called OpenWebStart which is based on IcedTeaWeb.
More information: Java Web Start is dead - long live OpenWebStart!
OpenWebStart is an open source implementation of the WebStart and JNLP standards (JSR-56).
[...]
In IcedTeaWeb we are currently working on mapping the JNLP spec and supporting its functions to the greatest extent possible. In addition to OpenWebStart, which uses IcedTeaWeb as its core, IcedTeaWeb is also used within AdoptOpenJDK to provide minimal WebStart in the Java 8 releases of AdoptOpenJDK. However, these are limited compared to OpenWebStart because they can only use the current JVM to run JNLP-based applications.
When installing Jenkins service from the command-line using jenkins-slave.exe
(aka winsw-*.exe
), Java Web Start is no longer required. It seems that JNLP protocol is still used behind the scenes, so it may still have some deprecation issue in the future.
Steps (assuming you have already set up the node in Jenkins master):
http://YourJenkinsServer:8080/jnlpJars/agent.jar
Create "jenkins-slave.xml" in the same directory:
<service>
<id>YourJenkinsSlaveServiceId</id>
<name>Your Jenkins Slave Service Name</name>
<description>This service runs an agent for Jenkins automation server.</description>
<executable>C:\Program Files\Java\JRE8\bin\java.exe</executable>
<arguments>-Xrs -jar "%BASE%\slave.jar" -jnlpUrl http://YourJenkinsServer:8080/computer/YourNodeName/slave-agent.jnlp -secret YourSecretStringConsistingOfHexadecimalCharacters -workDir=C:\YourNodeWorkDir</arguments>
<logmode>rotate</logmode>
<onfailure action="restart" />
<download from="http://YourJenkinsServer:8080/jnlpJars/agent.jar" to="%BASE%\slave.jar"/>
<extensions>
<extension enabled="true" className="winsw.Plugins.RunawayProcessKiller.RunawayProcessKillerExtension" id="killOnStartup">
<pidfile>%BASE%\jenkins_agent.pid</pidfile>
<stopTimeout>5000</stopTimeout>
<stopParentFirst>false</stopParentFirst>
</extension>
</extensions>
</service>
http://YourJenkinsServer:8080/computer/YourNodeName/
).
Create "jenkins-slave.exe.conf" file to prevent the executable from running on an earlier version of the .NET Framework.
<configuration>
<startup>
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
Launch "cmd.exe" as administrator and navigate to directory of "jenkins-slave.exe".
jenkins-slave.exe install
sc start YourJenkinsSlaveServiceId
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With