Jenkins – Adding and managing build agents – slaves

In this guide we will explore how to add slaves (build nodes) to jenkins.

The Jenkins architecture is designed for distributed build environments. It allows us to use different environments for each build project balancing the workload among multiple agents running jobs in parallel. These build environments are what were refer to as the slaves.

The Jenkins controller is the orignal node in the Jenkins installation. The Jenkins controller administers the Jenkins agents and orchestrates their work, including scheduling jobs on agents and monitoring agents. Agents may be connected to the Jenkins controller using either local or cloud computers.

The agents require a Java installation and a network connection to the Jenkins controller.

# Prerequisites

To add jenkins slave, you need the following:

  • Jenkins server
  • At least one other server to use as slave

On the slave server, ensure java is installed:

# Install Java

Install java on your system. We will be using the openjdk version of java. In centos 8, to check what software provides the java command line, use the following command: dnf whatprovides java

# dnf whatprovides java
Last metadata expiration check: 0:05:13 ago on Wed 13 Jan 2021 08:12:25 AM UTC.
java-1.8.0-openjdk-1:1.8.0.275.b01-1.el8_3.x86_64 : OpenJDK Runtime Environment 8
Repo        : AppStream
Matched from:
Provide    : java = 1:1.8.0

We can see that it is provided by the java-1.8.0-openjdk-1:1.8.0.275.b01-1.el8_3.x86_64. Install it using the command

dnf install java-1.8.0-openjdk-1:1.8.0.275.b01-1.el8_3.x86_64

After the installation is complete, check the installed java version.

java -version

# Add New User

Now we need to add a user that the jenkins master will use to connect to the slaves. We will create a user called jenkins.

Run the command below.

useradd -m -s /bin/bash jenkins
passwd jenkins

# Generate ssh key to use

Use this command to generate ssh key

ssh-keygen -t rsa -b 4096 -f ~/.ssh/jenkins_key

# Copy the SSH Key to use

Upload the key generated to the slave.

ssh-copy-id -i ~/.ssh/jenkins_key user@host

# Add New Slave Nodes

  • On the Master Jenkins dashboard, click the ‘Manage Jenkins’ menu, and click ‘Manage Nodes And Clouds’.
  • Click the ‘New Node’.
  • Type the node name ‘slave01’, choose the ‘permanent agent’, and click ‘OK’.
  • Now type node information details.
    • Description: slave01 node agent server
    • Remote root directory: /home/jenkins/slave01
    • Labels: slave01
    • Launch method: Launch slave agent via SSH, type the host ip address ‘10.0.15.21’, choose the authentication using ‘Jenkins’ credential.
  • Now click ‘Save’ button and wait for the master server to connect to all agent nodes and launch the agent services.

# Testing

To test this, create a job and on the ‘Label Expression’, specify the node such as ‘slave01’. Run the job.

Last updated on Mar 20, 2024 17:19 +0300
comments powered by Disqus
Citizix Ltd
Built with Hugo
Theme Stack designed by Jimmy