A step-by-step Jenkins installation guide.
In this article, we will learn how to install Jenkins on the following operating systems.
For all the above operating systems, the Jenkins installation steps vary slightly, but the configuration steps are the same.
If you are looking to learn Jenkins, check out this Jenkin online course by Udemy to become a hero from zero.
JDK8+ is mandatory for all operating systems. So first we need to install JDK8 or higher version. You can download and install it from the Oracle Java download page .
Once JDK is installed and running, we are ready to download and install Jenkins. Download the late St Jenkins MSI package in Windows.
jenkins.msi
to begin the installation.As you can see installing Jenkins in Windows is really easy. Like any other standard software.
As mentioned earlier, make sure you have JDK8+ installed and running on the Ubuntu machine. If it is not installed, run the command below to install it.
sudo apt install default-jdk-headless
Marouane@ubuntu:~$ sudo apt install default-jdk-headless
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
default-jdk-headless
0 upgraded, 1 newly installed, 0 to remove and 102 not upgraded.
Need to get 1132 B of archives.
After this operation, 6144 B of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 default-jdk-headless amd64 2:1.11-68ubuntu1~18.04.1 [1132 B]
Fetched 1132 B in 2s (676 B/s)
Selecting previously unselected package default-jdk-headless.
(Reading database ... 30061 files and directories currently installed.)
Preparing to unpack .../default-jdk-headless_2%3a1.11-68ubuntu1~18.04.1_amd64.deb ...
Unpacking default-jdk-headless (2:1.11-68ubuntu1~18.04.1) ...
Setting up default-jdk-headless (2:1.11-68ubuntu1~18.04.1) ...
Marouane@ubuntu:~$
To verify that Java was installed successfully, run the command below:
java -version
Marouane@ubuntu:~$ java -version
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-2ubuntu218.04)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-2ubuntu218.04, mixed mode, sharing)
Marouane@ubuntu:~$
Once it is installed, we are ready to install Jenkins.
Step 1: First, open the command terminal (Ctrl + Alt + T)
Step 2: To install Jenkins, let's add the system repository key
<span style="font-weight: 400;">wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -</span>
Marouane@ubuntu:~$ wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
OK
Marouane@ubuntu:~$
Step 3: Once the key is added, we need to add the Debian package repository address to the machine.
<span style="font-weight: 400;">sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'</span>
Step 4: Now you pdate Ubuntu Packages
<span style="font-weight: 400;">sudo apt update</span>
Marouane@ubuntu:~$ sudo apt update
Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease
Get:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Ign:3 http://pkg.jenkins-ci.org/debian-stable binary/ InRelease
Get:4 http://pkg.jenkins-ci.org/debian-stable binary/ Release [2044 B]
Get:5 http://pkg.jenkins-ci.org/debian-stable binary/ Release.gpg [195 B]
Get:6 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Get:7 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [8570 kB]
Get:8 http://pkg.jenkins-ci.org/debian-stable binary/ Packages [17.6 kB]
Get:9 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
Get:10 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [748 kB]
Get:11 http://security.ubuntu.com/ubuntu bionic-security/main Translation-en [237 kB]
Get:12 http://security.ubuntu.com/ubuntu bionic-security/restricted amd64 Packages [50.8 kB]
Get:13 http://security.ubuntu.com/ubuntu bionic-security/restricted Translation-en [12.3 kB]
Get:14 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [673 kB]
Get:15 http://security.ubuntu.com/ubuntu bionic-security/universe Translation-en [223 kB]
Get:16 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 Packages [7808 B]
Get:17 http://security.ubuntu.com/ubuntu bionic-security/multiverse Translation-en [2856 B]
Get:18 http://archive.ubuntu.com/ubuntu bionic/universe Translation-en [4941 kB]
Get:19 http://archive.ubuntu.com/ubuntu bionic/multiverse amd64 Packages [151 kB]
Get:20 http://archive.ubuntu.com/ubuntu bionic/multiverse Translation-en [108 kB]
Get:21 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [969 kB]
Get:22 http://archive.ubuntu.com/ubuntu bionic-updates/main Translation-en [329 kB]
Get:23 http://archive.ubuntu.com/ubuntu bionic-updates/restricted amd64 Packages [60.5 kB]
Get:24 http://archive.ubuntu.com/ubuntu bionic-updates/restricted Translation-en [14.7 kB]
Get:25 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [1085 kB]
Get:26 http://archive.ubuntu.com/ubuntu bionic-updates/universe Translation-en [337 kB]
Get:27 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 Packages [15.9 kB]
Get:28 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse Translation-en [6420 B]
Get:29 http://archive.ubuntu.com/ubuntu bionic-backports/main amd64 Packages [7516 B]
Get:30 http://archive.ubuntu.com/ubuntu bionic-backports/main Translation-en [4764 B]
Get:31 http://archive.ubuntu.com/ubuntu bionic-backports/universe amd64 Packages [7484 B]
Get:32 http://archive.ubuntu.com/ubuntu bionic-backports/universe Translation-en [4436 B]
Fetched 18.8 MB in 58s (327 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
102 packages can be upgraded. Run 'apt list --upgradable' to see them.
Marouane@ubuntu:~$
Step 5: finally to install Jenkins, run the command below
<span style="font-weight: 400;">sudo apt install jenkins</span>
Marouane@ubuntu:~$ sudo apt install jenkins
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
daemon
The following NEW packages will be installed:
daemon jenkins
0 upgraded, 2 newly installed, 0 to remove and 102 not upgraded.
Need to get 65.7 MB of archives.
After this operation, 66.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.ubuntu.com/ubuntu bionic/universe amd64 daemon amd64 0.6.4-1build1 [99.5 kB]
Get:2 http://pkg.jenkins-ci.org/debian-stable binary/ jenkins 2.235.1 [65.6 MB]
Fetched 65.7 MB in 3min 34s (307 kB/s)
Selecting previously unselected package daemon.
(Reading database ... 29242 files and directories currently installed.)
Preparing to unpack .../daemon_0.6.4-1build1_amd64.deb ...
Unpacking daemon (0.6.4-1build1) ...
Selecting previously unselected package jenkins.
Preparing to unpack .../jenkins_2.235.1_all.deb ...
Unpacking jenkins (2.235.1) ...
Setting up daemon (0.6.4-1build1) ...
Setting up jenkins (2.235.1) ...
invoke-rc.d: could not determine current runlevel
Processing triggers for systemd (237-3ubuntu10.39) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for ureadahead (0.100.0-21) ...
Marouane@ubuntu:~$
Jenkins has been installed successfully. We can now start the Jenkins server.
Step 6: Start Jenkins through systemctl command
<span style="font-weight: 400;">sudo systemctl start jenkins</span>
systemctl
does not show the output so we can check the status via the command below. Through this command we can check whether Jenkins is active or not.
<span style="font-weight: 400;">sudo systemctl status jenkins</span>
Marouane@ubuntu:~$ sudo systemctl status jenkins
● jenkins.service - LSB: Start Jenkins at boot time
Loaded: loaded (/etc/init.d/jenkins; generated)
Active: active (exited) since Sat 2020-04-04 10:10:19 UTC; 2 months 16 days ago
Docs: man:systemd-sysv-generator(8)
Tasks: 0 (limit: 4915)
CGroup: /system.slice/jenkins.service
Apr 04 10:10:18 ip-172-31-17-25 systemd[1]: Starting LSB: Start Jenkins at boot time...
Apr 04 10:10:18 ip-172-31-17-25 jenkins[1984]: Correct java version found
Apr 04 10:10:18 ip-172-31-17-25 jenkins[1984]: * Starting Jenkins Automation Server jenkins
Apr 04 10:10:18 ip-172-31-17-25 su[2037]: Successful su for root by root
Apr 04 10:10:18 ip-172-31-17-25 su[2037]: + ??? root:root
Apr 04 10:10:18 ip-172-31-17-25 su[2037]: pam_unix(su:session): session opened for user root by (uid=0)
Apr 04 10:10:18 ip-172-31-17-25 jenkins[1984]: mesg: ttyname failed: Inappropriate ioctl for device
Apr 04 10:10:18 ip-172-31-17-25 su[2037]: pam_unix(su:session): session closed for user root
Apr 04 10:10:19 ip-172-31-17-25 jenkins[1984]: ...done.
Apr 04 10:10:19 ip-172-31-17-25 systemd[1]: Started LSB: Start Jenkins at boot time.
Marouane@ubuntu:~$
Step 6: Port Configuration (Optional)
By default, Jenkins is running on 8080 port, and we need to make this port accessible from anywhere (if it is not accessible).
Let's open the port:
<span style="font-weight: 400;">sudo ufw allow 8080</span>
We can check the port status under the following command:
<span style="font-weight: 400;">sudo ufw status</span>
Marouane@ubuntu:~$ sudo ufw status
Status: active
To Action From
-- ------ ----
8080 ALLOW Anywhere
8080 (v6) ALLOW Anywhere (v6)
geekflare@ubuntu:~$
If the firewall status is inactive, run the following command elsewise it is not required
<span style="font-weight: 400;">sudo ufw allow OpenSSH</span>
followed by
<span style="font-weight: 400;">sudo ufw enable</span>
First, make sure JDK8+ is installed and running on the machine. If it is not installed, run the command below to install the OpenJDK 8 package.
sudo yum install java-1.8.0-openjdk-devel
[Marouane@localhost ~]$ sudo yum install java-1.8.0-openjdk-devel
CentOS-8 - AppStream 1.0 kB/s | 4.3 kB 00:04
CentOS-8 - AppStream 397 kB/s | 5.8 MB 00:14
CentOS-8 - Base 3.5 kB/s | 3.9 kB 00:01
CentOS-8 - Extras 547 B/s | 1.5 kB 00:02
Jenkins-stable 6.5 kB/s | 2.9 kB 00:00
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
java-1.8.0-openjdk-devel x86_64 1:1.8.0.252.b09-3.el8_2 AppStream 9.8 M
Transaction Summary
================================================================================
Install 1 Package
Total download size: 9.8 M
Installed size: 41 M
Is this ok [y/N]: y
Downloading Packages:
java-1.8.0-openjdk-devel-1.8.0.252.b09-3.el8_2. 531 kB/s | 9.8 MB 00:18
--------------------------------------------------------------------------------
Total 507 kB/s | 9.8 MB 00:19
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : java-1.8.0-openjdk-devel-1:1.8.0.252.b09-3.el8_2.x86 1/1
Running scriptlet: java-1.8.0-openjdk-devel-1:1.8.0.252.b09-3.el8_2.x86 1/1
Verifying : java-1.8.0-openjdk-devel-1:1.8.0.252.b09-3.el8_2.x86 1/1
Installed products updated.
Installed:
java-1.8.0-openjdk-devel-1:1.8.0.252.b09-3.el8_2.x86_64
Complete!
[Marouane@localhost ~]$
To verify that Java was installed successfully, run the command below
java -version
[Marouane@localhost ~]$ java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
[Marouane@localhost ~]$
Once it is installed, we are ready to install Jenkins.
Step 1 : First, open the command terminal
Step 2 : To install Jenkins, first of all, we need to download and add the Jenkins GPG key:
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
[Marouane@localhost ~]$ sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
--2020-06-21 04:29:52-- http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
Resolving pkg.jenkins-ci.org (pkg.jenkins-ci.org)... 52.202.51.185, 64:ff9b::34ca:33b9
Connecting to pkg.jenkins-ci.org (pkg.jenkins-ci.org)|52.202.51.185|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 85
Saving to: ‘/etc/yum.repos.d/jenkins.repo’
/etc/yum.repos.d/je 100%[==================>] 85 --.-KB/s in 0s
2020-06-21 04:29:54 (2.61 MB/s) - ‘/etc/yum.repos.d/jenkins.repo’ saved [85/85]
[Marouane@localhost ~]$
Step 3 : After downloading and adding the Jenkins GPS key, next Import Jenkins GPG key :
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
Step 4 : Update CentOS Plans
sudo yum update
[Marouane@localhost ~]$ sudo yum update
Last metadata expiration check: 0:17:09 ago on Sun 21 Jun 2020 04:21:20 AM PDT.
Dependencies resolved.
Nothing to do.
Complete!
[Marouane@localhost ~]$
Step 5 : After updating centos packages, we are ready to install, Jenkins:
sudo yum install jenkins
[Marouane@localhost ~]$ sudo yum install jenkins
Last metadata expiration check: 0:19:26 ago on Sun 21 Jun 2020 04:21:20 AM PDT.
Dependencies resolved.
===============================================================================
Package Architecture Version Repository Size
===============================================================================
Installing:
jenkins noarch 2.235.1-1.1 jenkins 63 M
Transaction Summary
===============================================================================
Install 1 Package
Total download size: 63 M
Installed size: 63 M
Is this ok [y/N]: y
Downloading Packages:
jenkins-2.235.1-1.1.noarch.rpm 172 kB/s | 63 MB 06:16
-------------------------------------------------------------------------------
Total 172 kB/s | 63 MB 06:16
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Running scriptlet: jenkins-2.235.1-1.1.noarch 1/1
Installing : jenkins-2.235.1-1.1.noarch 1/1
Running scriptlet: jenkins-2.235.1-1.1.noarch 1/1
Verifying : jenkins-2.235.1-1.1.noarch 1/1
Installed products updated.
Installed:
jenkins-2.235.1-1.1.noarch
Complete!
[Marouane@localhost ~]$
Step 6 : Start Jenkins systemctl
sudo systemctl start jenkins
Since that systemctl
is not showing the output so you can check the status via the command below. And through this command you can check whether Jenkins is active or not.
sudo systemctl status jenkins
[Marouane@localhost ~]$ sudo systemctl status jenkins
[sudo] password for geekflare:
● jenkins.service - LSB: Jenkins Automation Server
Loaded: loaded (/etc/rc.d/init.d/jenkins; generated)
Active: active (running)
Docs: man:systemd-sysv-generator(8)
Jun 20 11:15:22 localhost.localdomain systemd[1]: Starting LSB: Jenkins Automa>
Jun 20 11:15:23 localhost.localdomain runuser[1456]: pam_unix(runuser:session)>
Jun 20 11:15:33 localhost.localdomain jenkins[1433]: Starting Jenkins [ OK ]
Jun 20 11:15:33 localhost.localdomain systemd[1]: Started LSB: Jenkins Automat>
Jun 21 04:23:04 localhost.localdomain systemd[1]: Stopping LSB: Jenkins Automa>
[geekflare@localhost ~]$
Step 7 : Port Configuration (Optional)
By default, Jenkins is running on port 8080, and we need to make this port accessible from anywhere (only if it is not accessible). Let's open the port,
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
[Marouane@localhost ~]$ sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
success
[geekflare@localhost ~]$
After configuring the port reloading firewall,
sudo firewall-cmd --reload
[Marouane@localhost ~]$ sudo firewall-cmd --reload
success
[Marouane@localhost ~]$
Once Jenkins is installed, it will run on port 8080. Let's configure it by going to http://localhost:8080 on our favorite browser.
Step-1 : Visithttp://localhost:8080
Step-2 : To unlock the Jenkins, copy the administrator password from the file located at
C:\Program Files (x86)\Jenkins\secrets\initialAdminPassword
/var/lib/jenkins/secrets/initialAdminPassword
Now paste it into the Administrator Password field. Next, click the Continue button .
Step-3 : You can install suggested plugins or you can select plugins based on your use case. Here we will install the suggested plugins.
Step-4 : Please wait until all plugins are installed. Once the installation is complete, click Continue .
Step-5 : Create an administrator profile for Jenkins. Enter the required details and click Save and continue .
Step-6 : We can change the Jenkins URL if necessary, let's keep it as default http://localhost:8080 Click Save and Finish to complete the configuration process. Now click on Start using Jenkins
finally, the configuration process is completed, and the one above is the default, Welcome to Jenkins! .
The Jenkins configuration step is similar for all operating systems except Step 2 where we need to retrieve and enter the administrator password. This password can be recovered from the file, stored in the path given in Unlock Jenkins UI.
So the above steps were the steps to install Jenkins on your preferred operating system. Next, learn how to create your first Jenkins Pipelines .
Installing Jenkins is easy and if you are setting up a remote team, you can either get one cloud VM and install it yourself or go for Jenkins Hosting platform .
Copyright © Marouane All Rights Reserved