A Guide to Installing Jenkins, Configuring it and expose to outside world.
Subodh Bagde
Posted on June 15, 2024
What is Jenkins?
Jenkins is an open-source Java automation server used for software development lifecycle automation of repetitive operations. Being able to integrate with nearly all tools in the CI/CD pipeline with its many plugin support makes it a vital tool for developers and DevOps engineers.
AWS EC2 Instance
- Go to AWS Console
- Instances(running)
- Launch instances
Install Jenkins
Pre-Requisites:
- Java (JDK)
Run the below commands to install Java and Jenkins
Install Java
sudo apt update
sudo apt install openjdk-11-jre
Verify Java is Installed
java --version
Now, you can proceed with installing Jenkins
curl -fsSL https://pkg.jenkins.io/debian/jenkins.io-2023.key | sudo tee \
/usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt-get update
sudo apt-get install jenkins
By default, Jenkins will not be accessible to the external world due to the inbound traffic restriction by AWS. Open port 8080 in the inbound traffic rules as show below.
Add inbound traffic rules as shown in the image:
Login to Jenkins using the below URL:
http://:8080 [You can get the ec2-instance-public-ip-address from your AWS EC2 console page]
After you login to Jenkins,
- Run the command to copy the Jenkins Admin Password - sudo cat /var/lib/jenkins/secrets/initialAdminPassword
- Enter the Administrator password
Click on Install suggested plugins
Wait for the Jenkins to Install suggested plugins.
Create First Admin User or Skip the step.
Jenkins Installation is Successful. You can now starting using the Jenkins
Install the Docker Pipeline plugin in Jenkins:
- Log in to Jenkins.
- Go to Manage Jenkins > Manage Plugins.
- In the Available tab, search for "Docker Pipeline".
- Select the plugin and click the Install button.
- Restart Jenkins after the plugin is installed.
Wait for the Jenkins to be restarted.
Docker Slave Configuration
Run the below command to Install Docker
sudo apt update
sudo apt install docker.io
Grant Jenkins user and Ubuntu user permission to docker daemon.
sudo su -
usermod -aG docker jenkins
usermod -aG docker ubuntu
systemctl restart docker
You can run the below command to check if docker is up and running:
docker run hello-world
Once you are done with the above steps, it is better to restart Jenkins.
http://<ec2-instance-public-ip>:8080/restart
The docker agent configuration is now successful.
You can also refer my GitHub Repo:
https://github.com/SubodhBagde/Jenkins-Demo-Pipeline/tree/main
A simple Jenkins pipeline to verify if the docker agent configuration is working as expected.
Follow the steps to implement your first pipeline in Jenkins.
- Click on the New Item tab on the left side of your Jenkins UI. Give a name and select Pipeline option and click on OK.
- Now configure the pipeline as shown below in the image.
- Finally click on Build Now tab on the left to start the process.
- Here's the output, simply cick on the console output to view it.
Multi Stage Multi Agent
Set up a multi stage jenkins pipeline where each stage is run on a unique agent. This is a very useful approach when you have multi language application
or application that has conflicting dependencies.
Steps involved in it are pretty much similar to the previous one.
- You have to just replace the Script path my this folder name, as shown below.
- Run the following docker command to check whether the container has been build or not. You can see that once the execution is done the Jenkins application automatically deletes the container.
docker ps
The Multi Stage Multi Agent process is successful.
Posted on June 15, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.