Jenkins is an open source automation server that automates the repetitive technical tasks involved in continuous software integration and delivery. Jenkins is Java-based, installed from Ubuntu packages or by downloading and running its Web Application Archive (WAR) file, a collection of files that make up a complete web application to run on a server.
In this tutorial, you will install Jenkins on Ubuntu 22.04, start the development server, and create an administrative user to start exploring Jenkins automation. By the end of this tutorial, you will have an unsecured Jenkins server ready for a development deployment. To secure your installation for production, follow the guide How to configure Jenkins with SSL using an Nginx reverse proxy in Ubuntu 22.04.
To follow this tutorial, you will need:
An Ubuntu 22.04 server
- configured with a non-root sudo user and firewall following the Ubuntu 22.04 starter server setup guide. We recommend starting with at least 1 GB of RAM. Visit Jenkins’ “Hardware Recommendations” for guidance on capacity planning for a production-level Jenkins installation.
- Oracle JDK 11 installed, following our guidelines on installing specific versions of OpenJDK on Ubuntu 22.04.
Step 1 — Installing
Jenkins The version of
Jenkins included with Ubuntu’s default packages is often behind the latest available version of the project itself. To ensure that you have the latest fixes and features, use the packages maintained by the project to install Jenkins.
First, add the repository key to
: wget -q -O – https://pkg.jenkins.io/debian-stable/jenkins.io.key |sudo gpg -dearmor -o /
- usr/share/keyrings/jenkins.gpg The gpg -dearmor command
is used to convert the key into a format that apt recognizes
Next, let’s add the repository address of the Debian package to
sources.list on the server: sudo sh -c ‘echo deb [ signed-by=/usr/share/keyrings/jenkins.gpg] http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list
- ‘ The [signed-by
usr/share/keyrings/jenkins.gpg] part of the line guarantees that apt will verify the files in the repository using the GPG key you just downloaded.
After entering both commands, run apt update so that apt uses the new repository.
- sudo apt update
, install Jenkins and its dependencies: sudo apt install jenkins Now that Jenkins
and its dependencies are in place, we’ll start the
Step 2 — Starting
Jenkins Now that Jenkins is
installed, start it using
systemctl: sudo systemctl start
Since systemctl does not show the status output,
we will use the status command to verify that Jenkins started successfully:
- sudo systemctl status
If all went well, the beginning of the state output shows that the service is active and configured to start at boot
: Output● jenkins.service – Jenkins Continuous Integration Server Loaded: loaded (/lib/systemd/system/jenkins.service; enabled; provider preset: enabled) Active: active (running) since Mon 2022-04-18 16:07:28 UTC; 2min 3s ago Main PID: 88180 (java) Tasks: 42 (limit: 4665) Memory: 1.1G CPU: 46.997s CGroup: /system.slice/jenkins.service └─88180 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war -webroot=/var/cache/jenkins/war -httpPort=8080
Now that Jenkins is up and running, adjust your firewall rules so you can access it from a web browser to complete the initial setup.
Step 3 — Open the firewall
To set up a UFW firewall, visit Initial Server Setup with Ubuntu 22.04, Step 4- Setting Up a Basic Firewall. By default, Jenkins runs on port 8080. Open that port using
ufw: sudo ufw allow 8080 Check the ufw status
to confirm the new rules
- sudo ufw status
You will notice that traffic can carry
8080 from anywhere: OutputStatus: active For action from – – – OpenSSH ALLOW Anywhere 8080 ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)
(v6) ALLOW Anywhere (v6)
With Jenkins installed and a firewall configured, you have completed the installation stage and can proceed with the Jenkins setup.
Step 4 — Jenkins Setup
To configure your installation, visit Jenkins on its default port, 8080,
using your server’s domain name or IP address: http://your_server_ip_or_domain:8080
You should receive the Unlock Jenkins screen
, which shows the location of the initial password:
In the terminal window, use the cat command to display
- sudo cat /var/lib/jenkins/secrets/initialAdminPassword
Copy the 32-character alphanumeric password from the terminal and paste it into the Administrator password field, then click Continue.
The following screen presents the option to install suggested plugins or select specific plugins:
src=”https://assets.digitalocean.com/articles/jenkins-install-ubuntu-1804/customize_jenkins_screen_two.png” alt=”Customize Jenkins screen” />
We will click on the Install suggested plugins option, which will immediately start the installation process.
When the installation is complete, you are prompted to configure the first administrative user. It is possible to skip this step and continue as administrator using the initial password above, but we will take a moment to create the user.
Enter the user’s name and password:
You will receive an instance configuration which will prompt you to confirm the preferred URL for your Jenkins instance. Confirm the server domain name or server IP address:
After confirming the appropriate information, click Save and Finish. You will receive a confirmation page confirming that
“Jenkins is ready”: <img src="https://assets.digitalocean.com/articles/jenkins-install-ubuntu-1804/jenkins_ready_page_two.png" alt="Jenkins
is ready screen” />
Click Start using Jenkins to visit the main Jenkins dashboard:
point, you have completed a successful installation of
In this tutorial, you installed Jenkins using the packages provided by the project, started the server, opened the firewall, and created an administrative user. At this point, you can start exploring Jenkins.
When you have completed your scan, follow the guide How to configure Jenkins with SSL using an Nginx reverse proxy in Ubuntu 22.04 to protect your passwords as well as any sensitive system or product information that will be sent between your machine and the server in plain text to continue using Jenkins.
For more information on what you can do using Jenkins, check out other tutorials on the topic:
- Build Android Apps with
- How to Set Up Continuous Integration Pipelines in Jenkins on Ubuntu 16.04