Setting Up Jenkins
This section aims to set up the required infrastructure of Jenkins to perform the task and solve the 2nd point of the problem statement under Task 1.
What is Jenkins?
Jenkins is a self-contained, open-source automation server that can be used to automate all sorts of tasks related to
building, testing, and delivering or deploying software.
Jenkins can be installed through native system packages, Docker, or even run standalone by any machine with a Java Runtime Environment (JRE) installed.
I have setup Ubuntu 18.04 VM for Installing Jenkins. I followed the steps under the Debian/Ubuntu section.
I also installed Java 8, by this link specific versions of OpenJDK on Ubuntu 18.04. I decided to go with this documentation as it was concise.
Installation steps of Jenkins.
STEP 1 - Installing Jenkins
First, add the repository key to the system:
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
The system will return
Next, append the Debian package repository address
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > \ /etc/apt/sources.list.d/jenkins.list' sudo apt update
Finally, install Jenkins and its dependencies:
sudo apt install jenkins
GPG key error:
An LTS (Long-Term Support) release is chosen every 12 weeks from the stream of regular releases as the stable release for that period time. The link gets updated, it gives GPG key error so find the latest link from here under the Debian/Ubuntu section.
Certificate verification failed
To resolve this pass
--no-check-certificate as shown below:
wget https://ftp.yz.yamagata-u.sc.jp/pub/misc/jenkins/debian-stable/jenkins_2.235_all.deb --no-check-certificate
Again reinstall the Debian file of Jenkins
sudo dpkg -i jenkins_2.235.5_all.deb
To fix the broken packages run:
sudo apt install -f
Now again I check the status of jenkins:
sudo service jenkins status
It shows it is active now.
Step 2 — Starting Jenkins
I started Jenkins using systemctl command because systemctl is used to examine and control the state of “systemd” system and service manager:
sudo systemctl start jenkins
I checked the status of Jenkins service with the below command
sudo systemctl status jenkins
If it is successfully installed, the beginning of the output will show that the service is active and configured to start for boot. Jenkins is running now. To reach it from a web browser I will adjust the firewall rules to complete the initial setup.
Step 3 - Opening the Firewall
By default, Jenkins runs on port 8080, opening that port using ufw(Uncomplicated Firewall ):
sudo ufw allow 8080
To check the ufw status confirm the new rules:
sudo ufw status
Note: If the status shows inactive. Then enable the firewall by following the following commands that will OpenSSH
sudo ufw allow OpenSSH sudo ufw enable
Step 4 — Setting Up Jenkins
Find the IP of your system:
To complete setup, in the browser I entered
Unlock Jenkins screen opens, which will display where the initial password would be stored.
In the terminal window, I will use the cat command to display the password:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
The 32-character alphanumeric password is displayed in the terminal, paste it into the Administrator password field, then click
Installing suggested plugins
I clicked the
Install suggested plugins option, which will immediately begin the installation process as shown:
Once the installation completes, the screen opens to
Create First Admin User, I filled the required details.
Save and Continue or select
Continue as admin to skip the above step and continue as admin using the initial password used above.
Instance Configuration page will be displayed which will ask to confirm the preferred URL for Jenkins instance.
Confirm the appropriate information, click
Save and Finish. A confirmation page confirming that
Jenkins is Ready!
Start using Jenkins to visit the main Jenkins dashboard.
Here finish the installation of Jenkins in VM.
Invalid username or password
When I try to login in Jenkins I got the error
Invalid username or password. So I changed it by following the steps explained below.
Once logged in successfully into Jenkins VM (Virtual Machine). Go to directory
Jenkins and open file
sudo nano /var/lib/Jenkins/config.xml
This command will open
config.xml file as below:
You need to update
false as below.
Save this file.
Once you are done with updating value in the
config.xml file. Restart Jenkin's service.
sudo service jenkins restart
It will show the status
Now on opening Jenkins URL. It will go to the dashboard direct. No credentials are required. After opening the dashboard
Logged in user section will be blank. As it is now
To reset all security options, go to
Manage Jenkins option in left-hand side option lists.
Go to the
Configure Global Security option
- In Security Realm Option Select
Jenkins own databaseoption.
Allow users to sign upoption under
Jenkins own databaseoption.
Authorization section do the following changes :
Logged-in users can do anythingoption (Tick).
Allow anonymous read accessoption under
Logged-in users can do anythingoption.
You will be redirected to
Create First Admin User page once you click on
Once you fill all the details, click on
Create First Admin User button
You will be ready with new Admin users to log in again into the Jenkins portal.