从Linux中完全删除Jenkins
1. 概述
Jenkins 是一个实现自动化的开源 Java 项目。它使用持续集成、持续交付和持续部署方法帮助加速软件交付管道 。Jenkins 拥有非常活跃的社区支持,因此它是使用最广泛的自动化解决方案。
在本教程中,我们将学习从我们的机器中完全删除 Jenkins 设置。具体来说,我们将专注于删除 Jenkins 包、用户和 Jenkins 创建的目录结构。
在我们继续之前,让我们看看 Linux 中可能安装的不同类型的 Jenkins。
2. Jenkins 安装类型
Jenkins 作为一个 Java 项目,需要在系统上安装 java。在 Linux 机器上安装 Jenkins 有三种不同的方法。
2.1.使用包管理器
此方法用作在 Linux 中安装任何软件包的行业标准。这是在 Linux 上设置 Jenkins 的最简单和最常用的方法。
包管理器 帮助我们从 Linux 安装、升级和删除包。
首先,我们需要下载Jenkins 存储库文件 。然后我们可以使用CentOS/Fedora的yum包管理器和 Ubuntu 的apt包管理器来安装 Jenkins 。
2.2. Jenkins 作为使用 WAR 文件的嵌入式服务器
我们可以使用最新的稳定 Web 应用程序 ARchive (WAR) 文件来运行 Jenkins。使用这种方法,Jenkins 将作为一个独立的应用程序与 Jetty 服务器一起运行。
这是我们通常在测试环境中使用的最小类型的 Jenkins 设置。这是有关如何使用 WAR 文件部署 Jenkins 的完整指南 。
2.3. Jenkins 部署在 Tomcat 上
Apache Tomcat 服务器可以轻松运行 Jenkins 应用程序。我们需要做的就是将 Jenkins WAR 文件部署到 Apache 服务器的 webapps 文件夹中。webapps 文件夹位于*$CATALINA_HOME*中。
或者,如果需要,我们也可以将其部署在 GlassFish 服务器上。
3. 使用包管理器删除 Jenkins 安装
现在让我们看看删除使用包管理器安装的 Jenkins 设置的步骤。我们将使用包管理器本身来删除设置。
3.1.停止 Jenkins 服务器
首先,如果 Jenkins 服务已经在运行,请使用systemctl stop jenkins或service jenkins stop命令停止它。
3.2. 删除 Jenkins 包
让我们运行命令从 CentOS/Fedora 机器上删除 Jenkins 包:
$ sudo yum -y remove jenkins
同样,我们在 Ubuntu中使用apt-get包管理器而不是yum:
$ sudo apt-get remove --purge jenkins
apt-get remove命令将删除所有 Jenkins 包组和其他依赖包。此外,–purge选项用于从机器中删除配置文件。
3.3. 删除 Jenkins 工作目录
工作目录存储所有日志、配置和构建工件。默认情况下,它设置为*/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
作为清理过程的一部分,我们需要手动删除 Jenkins 工作目录:
$ rm -rf /var/lib/jenkins
3.4. 删除用户和组
Jenkins 的包管理器安装创建了一个jenkins用户和组。它使用这个jenkins用户来启动 Jenkins 服务器。在 Linux 中创建任何服务时,使用单独的用户(root 用户除外)被认为是一种很好的做法。各种标准服务,包括 Docker、apache2、httpd 等,在安装在 Linux 机器上时使用相同的概念。
现在让我们删除包管理器创建的 Jenkins 用户和组:
$ 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
在这里,我们使用了*userdel 命令来删除用户和组。getent passwd和getent group*命令的输出为空。因此,它确认成功删除了 Jenkins 用户和组。
这可以确保完全删除 Jenkins 设置,这是使用包管理器完成的。
4. 删除 Jenkins WAR 设置
如上所述,在 WAR 设置中,Jenkins 应用程序使用嵌入式 Jetty 服务器。在这种方法中,我们使用java -jar命令启动服务器。为了删除设置,我们首先需要终止该 java 进程。
4.1. 查找并终止 Jenkins 进程
要停止/kill java 进程,我们首先需要获取进程 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
在这里,Jenkins 进程的进程 id 是 14433。现在让我们使用kill命令杀死这个进程:
$ sudo kill -9 14433
-9选项指示内核强制删除该进程。
4.2. 删除 Jenkins 工作目录
现在让我们清理 Jenkins 的工作目录。对于 Linux 环境,使用的默认值是*$HOME/.jenkins* 。
$ rm -rf /root/.jenkins/
这里的*$HOME值是 /root。因此,这将删除工作目录/root/.jenkins*。
在这种情况下,我们可以使用现有用户运行 WAR。因此,无需在清理过程中删除特定用户。
5. 从 Tomcat 中删除 Jenkins 设置
在这种设置中,我们假设 Jenkins 服务器在 Apache Tomcat 服务器上运行。因此,要删除 Jenkins 设置,我们需要删除 Tomcat 的 webapps 目录中的 Jenkins WAR 文件的部署。
5.1. 停止 Apache Tomcat 服务器
首先,如果 Tomcat 服务器已经在运行,我们将停止它:
$ cd $CATALINA_HOME/bin
$ bash catalina.sh stop
这里 $CATALINA_HOME 表示 Apache 安装目录。
5.2. 清理 Webapps 目录
现在让我们从 Apache Tomcat webapps 目录中删除 Jenkins WAR 文件:
$ cd $CATALINA_HOME/webapps
$ rm -rf jenkins.war jenkins
在我们的例子中,Jenkins WAR 文件名为jenkins.war,* jenkins*目录是在解压 WAR 文件后创建的。Tomcat 服务器隐式执行此操作。
5.3. 删除 Jenkins 工作目录
在运行太多构建或安装大量插件时,工作目录大小最终会增加。这会导致诸如“磁盘空间太低”之类的问题。因此,建议在 Jenkins 清理过程中删除工作目录:
$ rm -rf /root/.jenkins/
Tomcat 使用的默认工作目录是*$HOME/.jenkins/*