SSH vs java web start for windows slave and Linux master in jenkins

1,887 views
Skip to first unread message

JenkinsJunkyard

unread,
Apr 4, 2016, 10:30:10 AM4/4/16
to Jenkins Users
Hello,

I am configuring jenkins from linux to windows, with windows as slave. I have configured in both protocols.
I see java web start very easy to configure the master slave. But while configuring the windows slave through SSH it is more complicated compared to java web start.

I wanted to understand, what are the advantages with respect to technical perspective, simplicity and security with the configuration of windows slave and linux as master.

Please let me know your suggestions.

Thanks,
Naveen

jpd4nt

unread,
Apr 4, 2016, 1:13:18 PM4/4/16
to Jenkins Users
Hi Naveen.

I find ssh option more robust because our Jenkins master is behind a load balancer so the web start has to go through that, we use AWS ELB and sometimes the connection breaks.

Also with a fix master its easier to set the access rules that for a slave ringing home back to the master.
68

JenkinsJunkyard

unread,
Apr 5, 2016, 4:37:24 AM4/5/16
to Jenkins Users
Thanks for the reply jpd4nt.
for anybody - any other advantages  between these two protocols.

Thank,
Naveen

Stephen Connolly

unread,
Apr 5, 2016, 6:12:25 AM4/5/16
to jenkins...@googlegroups.com
SSH is encrypted, but uses Blocking I/O (unless you use the CloudBees proprietary NIO SSH Slave connector) so scalability can be limited.

JNLPAgentProtocol2 is unencrypted and uses Non-Blocking I/O, so you get back-pressure when the server is under load, but good scalability.

JNLPAgentProtocol3 is lightweight encrypted but uses Blocking I/O, so scalability may be limited again, but I have yet to test as I need to recalibrate my test rig.

I am currently working on JNLPAgentProtocol4 which will be Non-Blocking I/O and full TLS encryption.

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/66c95ce2-3d12-4f95-85e2-d9683bc086c3%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

JenkinsJunkyard

unread,
Apr 6, 2016, 1:32:28 AM4/6/16
to Jenkins Users
Thanks Stephen

Wei-min Lee

unread,
Apr 11, 2016, 10:16:13 PM4/11/16
to Jenkins Users
I'm also curious about running the window slave as a service which requires .Net 3.5 in that Microsoft is looking to end support for 3.5. Would there be an update that supports higher versions of .Net or should I be looking at converting my Windows slaves to launch via java web start - seeing that the response to this thread talks more about the current and the evolution coming for the web start client?

Slide

unread,
Apr 11, 2016, 11:25:18 PM4/11/16
to Jenkins Users
It should run just fine on newer versions of the .NET framework. I didn't see anything in the code that was 3.5 specific.

On Mon, Apr 11, 2016 at 7:16 PM Wei-min Lee <weimin...@gmail.com> wrote:
I'm also curious about running the window slave as a service which requires .Net 3.5 in that Microsoft is looking to end support for 3.5. Would there be an update that supports higher versions of .Net or should I be looking at converting my Windows slaves to launch via java web start - seeing that the response to this thread talks more about the current and the evolution coming for the web start client?

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-use...@googlegroups.com.

Wei-min Lee

unread,
Apr 12, 2016, 3:58:12 AM4/12/16
to Jenkins Users
These instructions (https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Windows+service#InstallingJenkinsasaWindowsservice-InstallSlaveasaWindowsservice%28require.NET2.0framework%29) specify .Net 2.0.

On my Windows 2012 VM with only .Net 4, I couldn't get the slave service to start until I installed .Net 3.5.

Wei-min Lee

unread,
Apr 12, 2016, 4:41:05 PM4/12/16
to Jenkins Users
Another interesting bit of info which I didn't notice until now.  Even getting the JNLP slave to run as a Windows service requires .Net 3.5, (https://wiki.jenkins-ci.org/display/JENKINS/Step+by+step+guide+to+set+up+master+and+slave+machines).

James Nord

unread,
Apr 24, 2016, 3:44:28 AM4/24/16
to Jenkins Users
It requires a .Net 3.5 compatible runtime. You can use. Net 4.0 for example.

Ssh slaves will auto update the remote, jnlp slaves (iirc) need to be updated manually.
Ssh on windows is generally a world of pain at some point, YMMV, if your Setting up a few try both and see what works best for you in the long run.

rausa...@gmail.com

unread,
May 2, 2019, 3:13:21 AM5/2/19
to Jenkins Users
ssh lets you only use resources while you need that node.  (unless you chose "Use this node as much as possible")

If I remember correctly, an agent can use around 80 MB of RAM. If your machine is quite resource-constrained, such as a Raspberry Pi that you use only sometimes for building for that platform, you may well want to save resources in case you use that machine for other purposes.
Reply all
Reply to author
Forward
0 new messages