Jenkins Master-Slave Architecture
Jenkins is a awesome Continuous Integration tool which allow you to add multiple slaves as per your project requirement . Working in the distributed environment, we need different machine for different purpose. We might need Ubuntu machines to do specific tasks, CentOS machines to perform additional task and so on.
While thinking Continuous Integration in cross-browser and cross-platform environment, you must have master slave architecture of Jenkins. You have master mode and millions of slaves running under it (not millions though :)). You can read more about adding multiple slaves here.
Let’s say your master node is running on http://master-yourawesomedomain: 8080
Next step is to add few machines as a slave in the same data center. You must have to make sure that your master can ssh into slave machine.
<span class="GRcorrect">ssh</span> email@example.com
Now you are logged into Master node
Tyr ssh into slave machine eg we have 2 slaves
you@master-yourawesomedomain$ ssh firstname.lastname@example.org
You should add your private key to known host and you will be able to access slave machine.
Let’s see how you can do from Jenkins Master interface.
Login to your Master Jenkins http://master-yourawesomedomain: 8080 with your Username and Password.
Click on ‘Manage Jenkins’ → Manage Nodes
You will see a screen something like this:
Now Click on ‘New Node’ and fill in the details like this :
Next thing is you have to configure your slave as per your requirement.
Few things to note:
- # of executor: You shouls put it to 1 or 2
- Remote FS root : Better to have jenkins directory as /var/jenkins
- Host : This must be a ip address of your slave machine
- Username : you must run all your tests as a jenkins_user
- Password : you can use password but I would prefer private key. It’s upto you and your companies security policy.Once you happy save the config.
You will see window to launch new slave like this:
Click on the Launch Slave and You have new machine to run your tests. !
All Done. You got new slave to run tests on Jenkins.
Happy CI !!