1 Create a jenkins user on the Slave
Create a jenkins user and a password using the following command on the slave server [your_slave_server]
sudo adduser jenkins --shell /bin/bash
sudo passwd jenkins
By default this creates user jenkins at /home/jenkins
Now login as user jenkins and create a slave directory under jenkins.
2 Setting up Slaves jenkins on the Master Using Username and Password
Login in to Jenkins Web Console as an administrator and go to Dashboard –> Manage Jenkins –> Manage Nodes
Click on the New Node, then give it a name, select the “Permanent Agent” option and click ok.
In the New Node Page, Click Add button besides Credentials field to create the credential, which is the jenkins user and password to the slave server. The password is encrypted in the jenkins system.
Enter the values as indicated below. Then click save
Once saved, Jenkins will automatically connect to the slave machine and configure an agent. Noticeably, slave.jar will be install in /home/jenkins/slave on the slave server and eventually workspace will be created there too.
3 Setting up a Slave jenkins using ssh Key
This is the preferred method as the access is not tied with the user’s password and there won’t be impact if the user’s password is changed.
1. Login to the slave server as a jenkins user
2. Create an .ssh directory and cd into the directory
chmod 700 ~/.ssh
The .ssh directory must have proper access permissions that group and others cannot have write permissions, otherwise, the following error would show when starting the slave.
ERROR: Server rejected the 1 private key(s) for jenkins (credentialId:***/method:publickey)
3. Create an ssh key pair using the following command. Press enter for all the defaults when prompted
ssh-keygen -t rsa -C "The access key for You Jenkins slave"
4. Add the public to authorized_keys file using the following command.
cat id_rsa.pub > ~/.ssh/authorized_keys
5. Copy the contents of the private key in id_rsa to the clipboard.
6. Login in to Jenkins Web Console as an administrator
Go to dashboard –> credentials –> Global credentials –> add credentials
Select SSH Username with private key
Enter jenkins as the username
Paste the key in the clipboard to Private Key (Enter directly)
7. Go to Dashboard –> Manage Jenkins –> Manage Nodes
Select the key credential for the Slave configuration then click Save.