Introduction
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.
Prerequisites
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
your system
: 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 ensures 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
install jenkins Now that Jenkins
and its dependencies are in place, we’ll start the
Jenkins server.
Step 2 — Starting
Jenkins Now that Jenkins is
installed, start it using
systemctl: sudo systemctl start
- jenkins.service
Since systemctl does not show the status output,
we will use the status command to verify that Jenkins started successfully:
- sudo systemctl status
jenkins
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)
- 8080
(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 the password:
- 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:
<img
src=”https://assets.digitalocean.com/articles/jenkins-install-ubuntu-1804/customize_jenkins_screen_two.png” alt=”Customize Jenkins Display” />
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”:
Click Start using Jenkins to visit the main Jenkins dashboard
:
<img src
=”
https://assets.digitalocean.com/articles/jenkins-install-ubuntu-2204/jenkins_home_page.png” alt=”Welcome to Jenkins Screen” />
At this point, you have completed a successful installation of
Jenkins.
Conclusion
In this walkthrough, 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:
How to
- Build Android Apps with
- How to Set Up Continuous Integration Pipelines in Jenkins on Ubuntu 16.04
Jenkins