I want to create a jenkins slave using command line. The is a document about setting up jenkins slave as a windows service and I followed the instruction there. I can run javaws http://10.121.33.4:8080/computer/Test-Jenkins-Slave-2/slave-agent.jnlp
to connect slave to master but the problem of this is it will get disconnect after the machine is restarted.
I think the best way to do this is to install slave as a service. So, I tried to follow the instruction again on that page. I have jenkins Slave installed as a service and the registry key added like below.
Service's property:
Registry values:
I wonder if I did anything incorrectly? Is the document missing something?
Install Jenkins as a Windows service This can be done from JNLP, or by running " java -jar jenkins. war ". Once Jenkins is started this way, look for the "Install as Windows Service" link in the "Manage Jenkins" page (requires Microsoft .
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 Manage Jenkins > Manage Nodes, click on the newly created agent machine. Run from agent command line. Login to agent node -> download the agent. jar file from Jenkins controller UI to agent machine then while executing the command, please specify download path of agent.
(Last 2019-09-20) The quickest and most reliable way that I've found to install a Jenkins Worker/Slave as a service is to:
Detailed steps and pictures below.
Note: Don't bother with modifying the registry, the embedded install makes the process quick, easy, and repeatable.
So lets say you've configured a node named "amberboch". On the worker/slave (i.e. "amberboch") machine:
Once the service has been installed, change the service's "log-on" credentials as needed for your particular installation. You may have to reset permissions or delete directories within the work-space if, whilst running in Administrator mode, a job happened to run and thereby created a work-space sub-folder (as any jobs that had run would have done so as the former administrator-privilaged user, and the regular Jenkins-user profile may not have proper permissions to the old workspace folders and files.
I hope this helps save you time and headaches in managing (imho) the best CI option I've come across.
Best regards, Rob
PS - I found another discussion that may also help: Install Jenkins slave as a Windows service in command line
I have taken the
from a Jenkins 'master' installation. Next I have adapted the XML to contains the startup parameters for my slave. This gives something like:
<executable>%JAVA_HOME%\bin\java.exe</executable>
<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "C:\Tools\jenkins_slave\slave_95\agent.jar" -jnlpUrl http://jenkins_master:9090/computer/slave_95/slave-agent.jnlp -secret 999999999999999999999999999999999999999999 -workDir "C:\jenkins_slaves_workdir"</arguments>
In the XML I have also: - edited the fields for id,name,description to my preferences - removed the content of the 'extensions' block
After that I can just start the windows service running an admin shell on the slave using the command:
sc create <service_name> binpath= "C:\Tools\jenkins_slave\slave_95\Jenkins.exe" start= auto
Which is in principle the same as starting the Jenkins master service.
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