1. Overview

Jenkins is an open-source Java project to achieve automation. It helps speed up the software delivery pipeline using the continuous integration, continuous delivery, and continuous deployment methodology. Jenkins has very active community support, hence it is the most widely used automation solution.

In this tutorial, we’ll learn to remove the Jenkins setup completely from our machine. Specifically, we’ll focus on removing the Jenkins package, users, and the directory structure created by Jenkins.

Before we proceed further, let’s look into different types of Jenkins installation possible in Linux.

2. Types of Jenkins Installations

Jenkins, being a Java project, requires java on the system. There are three different ways to install Jenkins on a Linux machine.

2.1. Using Package Manager

This method serves as an industry standard to install any package in Linux. It is the simplest and most common way to set up Jenkins on Linux.

A package manager helps us install, upgrade, and remove the packages from Linux.

First, we need to download the Jenkins repository file. Then we can install Jenkins using the yum package manager for the CentOS/Fedora and apt package manager for Ubuntu.

2.2. Jenkins as an Embedded Server Using a WAR File

We can run Jenkins using the latest stable Web application ARchive (WAR) file. Using this method, Jenkins will run as a standalone application with the Jetty server.

This is a minimal type of Jenkins setup which we generally use in the testing environment. Here is the complete guide on how to deploy Jenkins using WAR file.

2.3. Jenkins Deployed on Tomcat

Apache Tomcat server can easily run the Jenkins application. All we need to do is deploy the Jenkins WAR file into the Apache server webapps folder. The webapps folder is present inside the $CATALINA_HOME.

Alternatively, we can also deploy it on the GlassFish server if required.

3. Remove Jenkins Installation Using Package Manager

Let’s now look into the steps to remove the Jenkins setup that was installed using the package manager. We’ll be using the package manager itself to remove the setup.

3.1. Stop Jenkin Server

First, stop the Jenkins service if it’s already running using the systemctl stop jenkins or service jenkins stop command.

3.2. Remove Jenkins Package

Let’s run the command to remove the Jenkins package from the CentOS/Fedora machine:

$ sudo yum -y remove jenkins

Likewise, we use apt-get package manager instead of the yum in Ubuntu:

$ sudo apt-get remove --purge jenkins

The apt-get remove command will remove all the Jenkins package groups and other dependent packages. In addition, the –purge option is used to delete the configuration files from the machine.

3.3. Remove the Jenkins Working Directory

A working directory stores all the logs, configurations, and build artifacts. By default, it is set to /var/lib/jenkins:

$ ls /var/lib/jenkins
config.xml  hudson.model.UpdateCenter.xml  identity.key.enc  jenkins.telemetry.Correlator.xml  jobs  nodeMonitors.xml  nodes  plugins  secret.key  secret.key.not-so-secret  secrets  updates  userContent  users

We’ll need to remove the Jenkins working directory manually as a part of the cleanup process:

$ rm -rf /var/lib/jenkins

3.4. Remove User and Group

The package manager installation of Jenkins creates a jenkins user and group. It uses this jenkins user to start the Jenkins server. It is considered a good practice to use a separate user (other than the root user) while creating any service in Linux. Various standard services, including Docker, apache2, httpd, etc., use the same concept when installed on the Linux machine.

Let us now remove the Jenkins user and group created by the package manager:

$ sudo getent passwd | grep jenkins
jenkins:x:978:974:Jenkins Automation Server:/var/lib/jenkins:/bin/false
$ sudo getent group | grep jenkins
jenkins:x:974:
$ sudo userdel jenkins
$ sudo getent passwd | grep jenkins
$ sudo getent group | grep jenkins

Here, we have used the userdel command to remove the user and the group. The output of the getent passwd and getent group command was empty. Hence, it confirms the successful deletion of the Jenkins user and group.

This ensures the complete removal of the Jenkins setup, which was done using the package manager.

4. Remove Jenkins WAR Setup

As discussed above, in the WAR set up, the Jenkins application uses the embedded Jetty server. In this approach, we start the server by using the java -jar command. In order to remove the setup, we first need to kill that java process.

4.1. Find and Kill the Jenkins Process

To stop/kill the java process, we first need to get the process id (PID):

$ ps -ef | grep jenkins
ubuntu 14433 8171 32 14:54 pts/0 00:00:43 java -jar jenkins.war
ubuntu 14824 14618 0 14:57 pts/1 00:00:00 grep --color=auto jenkins

Here, the process id for the Jenkins process is 14433. Let’s now kill this process using the kill command:

$ sudo kill -9 14433

The -9 option instructs the kernel to forcefully remove the process.

4.2. Remove the Jenkins Working Directory

Let us now clean up the working directory of Jenkins. The default used is $HOME/.jenkins for the Linux environment.

$ rm -rf /root/.jenkins/

Here the $HOME value is /root. So, this will remove the working directory /root/.jenkins.

In this case, we can run the WAR using an existing user. Hence there is no need to remove a specific user as a part of the cleanup.

5. Remove Jenkins Setup from Tomcat

In this kind of setup, we assume the Jenkins server to be running on the Apache Tomcat server. Therefore, to remove a Jenkins setup, we need to remove the deployment of the Jenkins WAR file inside the webapps directory of the Tomcat.

5.1. Stop Apache Tomcat Server

First, we’ll stop the Tomcat server if its already running:

$ cd $CATALINA_HOME/bin
$ bash catalina.sh stop

Here $CATALINA_HOME denotes the Apache installation directory.

5.2. Cleanup Webapps Directory

Let’s now remove the Jenkins WAR file from the Apache Tomcat webapps directory:

$ cd $CATALINA_HOME/webapps
$ rm -rf jenkins.war jenkins

In our case, the Jenkins WAR file is named jenkins.war, and the jenkins directory is created after unpackaging the WAR file. The Tomcat server does this implicitly.

5.3. Remove the Jenkins Working Directory

On running too many builds or installing a lot of plugins, the working directory size eventually increases. This leads to problems like “Disk space is too low”. Hence, it is recommended to remove the working directory as a part of the Jenkins cleanup process:

$ rm -rf /root/.jenkins/

The default working directory used by Tomcat is $HOME/.jenkins/

6. Conclusion

In this tutorial, firstly, we learned different ways to install Jenkins on Linux. Then, for each installation type, we looked into the steps to remove the setup. Apart from removing the Jenkins setup, we also cleaned up the configurations created while installing/using Jenkins.

There is no way to recover that data after clean-up because we have removed the working directory permanently.

The process discussed above ensures the complete removal of Jenkins from the machine.