如何在 Rocky Linux 9 上安装 Jenkins
本教程适用于这些操作系统版本
- 洛基Linux 9
- 洛基Linux 8.4
在此页
- 先决条件
- 安装 Java OpenJDK
- 添加 Jenkins 存储库
- 安装詹金斯
- 安装和配置 httpd 作为反向代理
- 配置防火墙
- Jenkins 初始配置
- 创建第一个 Jenkins 构建
- 结论
Jenkins 是一种用于持续集成/持续交付 (CI/CD) 的开源自动化工具。完全用 Java 编写,支持 1000 多个用于构建、部署和自动化项目的插件。 Jenkins 已成为领先的自动化工具之一,可通过自动化加速您的开发过程。 Jenkins 集成了构建、文档、测试、打包、阶段、部署、静态分析等开发生命周期流程。
Jenkins 支持 Git、Subversion、Mercurial、CVS、Perforce 和 RTC 等多种版本控制工具。此外,它还可以执行 Apache Ant、Apache Maven、shell 脚本和 Windows 批处理命令。 Jenkins 拥有强大的社区支持以及广泛的文档和 wiki,这使得 Jenkins 成为最常用的自动化 CI/CD 工具之一。此外,它还提供许多不同的工具、语言和自动化任务来自动化您的开发和部署过程。
在本教程中,您将在 Rocky Linux 9 服务器上使用 Apache/httpd 反向代理安装和设置 Jenkins。您还将使用 SSL 和 firewalld 保护 Jenkins。最后,您将创建一个简单的 Jenkins 构建。
先决条件
首先,您需要满足以下要求才能完成本教程:
- Rocky Linux 服务器 - 本教程使用最新的 Rocky Linux 9。
- 具有 sudo/root 管理员权限的非 root 用户。
- 指向服务器 IP 地址的域名 - 此示例使用域 jenkins.hwdomain.io
- SELinux 配置为宽容模式。
安装 Java OpenJDK
Jenkins 是用 Java 等等等等编写的。在此步骤中,您将安装 Java OpenJDK 11。
默认的 Rocky Linux 存储库提供了多个版本的 Java OpenJDK。要安装 Jenkins,您可以使用 Java OpenJDK 11 或 17。本示例使用 java OpenJDK 11,运行下面的 dnf 命令进行安装。
sudo dnf install java-11-openjdk
出现提示时输入 y,然后按 ENTER 继续。

安装 Java 后,使用以下命令验证 Java 版本。您应该在 Rocky Linux 上安装 Java OpenJDK 11。
java -version

添加詹金斯存储库
Jenkins 可以部署在多个环境中,包括在此类虚拟机上独立部署或使用容器技术(如 Docker 和 Kubernetes)。对于 Linux 发行版,您可以通过 Jenkins 存储库提供的二进制包安装 Jenkins。
在添加 Jenkins 存储库之前,运行以下 dnf 命令以安装以下包。
sudo dnf install wget curl
然后,通过下面的 wget 命令下载基于 RHEL 操作系统的 Jenkins 存储库。存储库将存储在 /etc/yum.repos.d/jenkins.repo。
sudo wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.repo
接下来,使用以下 rpm 命令将 Jenkins 存储库的 GPG 密钥导入您的系统。
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

最后,通过下面的 dnf 命令验证系统上已启用存储库的列表。
sudo dnf repolist
您将收到一个输出,表明 Jenkins 存储库在您的系统上可用,并且您已准备好安装 Jenkins。

安装詹金斯
添加存储库后,您现在将在 Rocky Linux 服务器上安装 Jenkins。
运行以下 dnf 命令来安装 Jenkins。
sudo dnf install jenkins
出现提示时,输入 y 确认并按 ENTER 继续。 Jenkins 安装将开始。在下面的输出中,您将安装 Jenkins v2.361,这是 jenkins 的最新稳定版本(在撰写本文时)。

然后,在 Jenkins 安装完成后,运行以下 systemctl 命令重新加载 systemd 管理器。安装后,将创建 jenkins 服务,此命令会将新服务应用到您的系统。
sudo systemctl daemon-reload
接下来,通过 systemctl 命令启动并启用 jenkins 服务。 Jenkins 现在应该在您的系统上运行,并且它将在启动或引导期间自动运行。
sudo systemctl start jenkins
sudo systemctl enable jenkins

最后,通过以下 systemctl 命令验证 Jenkins。
sudo systemctl status jenkins
您将收到类似于以下屏幕截图的输出 - Jenkins 服务正在运行。

现在 Jenkins 正在运行,您可以开始 Jenkins 的初始配置。但是,您将使用 Apache/httpd 作为反向代理来设置和运行 Jenkins。
安装和配置 httpd 作为反向代理
此时,现在可以通过 TCP 端口 8080 访问 Jenkins。为了使 Jenkins 更加用户友好和安全,您将安装和配置 Apache/httpd Web 服务器作为 Jenkins 的反向代理。
在开始之前,请确保您的域名指向您的 Rocky Linux IP 地址,并且您已经生成了 SSL 证书。您可以使用自签名证书或使用 Letsencrypt 提供的免费 SSL。
首先,通过下面的 dnf 命令安装 httpd 网络服务器和 mod_ssl 包。出现提示时输入 y,然后按 ENTER 继续。
sudo dnf install httpd mod_ssl

mod_ssl 包要求您为本地主机设置证书。因此,运行以下命令仅为本地主机生成自签名证书。
在此过程中,系统会要求您输入 SSL 证书的详细信息。您可以输入您的详细信息并按 ENTER 跳过。
openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 365 -out /etc/pki/tls/certs/localhost.crt
安装 httpd 网络服务器后,使用以下 nano 编辑器命令创建一个新的虚拟主机配置 /etc/httpd/conf.d/jenkins.conf。
sudo nano /etc/httpd/conf.d/jenkins.conf
将以下配置添加到文件中。此示例使用域名 jenkins.hwdomain.io 和来自 Letsencrypt 的 SSL 证书。所以,一定要更改SSL证书的域名和路径。
<VirtualHost *:80>
ServerAdmin
ProxyRequests Off
ProxyPreserveHost On
AllowEncodedSlashes NoDecode
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/ nocanon
ProxyPassReverse / http://localhost:8080/
ProxyPassReverse / http://jenkins.hwdomain.io/
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
</VirtualHost>
完成后保存文件并关闭编辑器。
接下来,运行以下命令来验证 httpd 配置。如果您得到诸如 Syntax OK 之类的输出,则意味着您已正确配置 httpd,并且您已准备好启动 httpd 服务。
sudo apachectl configtest

通过下面的 systemctl 命令启动并启用 httpd 服务。
sudo systemctl start httpd
sudo systemctl enable httpd
使用以下命令验证 httpd 服务状态。您应该看到 httpd 服务正在运行并已启用,这意味着 httpd 将在启动时自动启动。
sudo systemctl status httpd

在此步骤中,您安装了 httpd Web 服务器,将 httpd 配置为反向代理,并启用了安全 HTTPS。但是要访问你的 Jenkins 安装,你仍然需要在你的 Rocky Linux 服务器上设置 firewalld。
配置防火墙
Firewalld 是基于 RHEL 的操作系统(包括 Rocky Linux)上的默认防火墙软件。它在 Rocky Linux 上默认安装和运行。您现在将设置 firewalld 并打开 HTTP 和 HTTPS 服务以允许访问 Jenkins。
运行以下 firewall-cmd 命令将 HTTP 和 HTTPS 服务添加到 firewalld。
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
之后,重新加载 firewalld 以应用新更改并验证 firewalld 上启用的服务列表。
sudo firewall-cmd --reload
sudo firewall-cmd --list-services
这将提供以下输出 - HTTP 和 HTTPS 服务都添加到 firewalld。

打开 HTTP 和 HTTPS 端口后,您将通过 Web 浏览器开始 Jenkins 的初始安装和配置。
詹金斯初始配置
在开始 Jenkins 初始配置之前,运行以下命令获取 Jenkins 的初始密码。第一次配置 Jenkins 时需要初始管理员密码。
sudo cat /var/lib/jenkins/secrets/initialAdminPassword

现在打开 Web 浏览器并访问 Jenkins 安装的域名(即:https://jenkins.hwdomain.io/)。
在第一页上,系统会要求您提供 Jenkins 初始管理员密码。粘贴您的 Jenkins 初始密码,然后单击继续。

现在通过安装一些插件来自定义 Jenkins 安装。您可以手动选择插件(针对专家),也可以选择选项安装建议的插件来安装 Jenkins 推荐的插件。

Jenkins 插件安装现在将开始。所有这些插件现在都将安装在您的 Jenkins 上。

插件安装完成后,您将为 Jenkins 设置管理员用户。输入 Jenkins 的详细信息、用户、电子邮件和密码,然后单击保存并继续。

接下来,在实例配置中输入 Jenkins URL。在此示例中,Jenkins 在域 https://jenkins.hwdomain.io/ 上使用 httpd 反向代理运行。
单击保存并完成以完成 Jenkinss 初始配置。

Jenkins 初始配置完成后,您将被重定向到 Jenkins 仪表板。

您现在已经完成了 Jenkins 初始配置。考虑到这一点,您可以创建和设置新的 Jenkins 构建。继续阅读以了解 Jenkins Build。
创建第一个 Jenkins 构建
在 Jenkins 仪表板上,单击菜单 New Item 以创建新的 Jenkins 构建。

输入这个新构建的项目名称并选择项目类型。在此示例中,您将创建一个新的 Jenkins 构建“First Build”,类型为“Freestyle project。
单击“确定”继续。

在“常规”部分,输入项目描述。然后,移动到“构建步骤”部分。
选择 build spets 作为 \Execute shell\ 并在下面输入简单的 bash 命令。
echo "This is First build on jenkins"
现在单击保存以确认并创建 Jenkins 构建。

您现在将被重定向到项目“First Build”的 Jenkins 构建页面。
单击“立即构建”以启动并运行 Jenkins 构建。运行项目后,您应该在“构建历史”部分下看到构建历史。

在下面的截图中,只有一个 Jenkins 构建历史。

单击构建历史编号 1 以获取 Jenkins 构建的更多详细信息输出。现在单击“控制台输出”以获取 Jenkins 构建生成的详细输出。

您现在学习了如何创建和运行 Jenkins 构建。
结论
在本文中,您在 Rocky Linux 9 服务器上安装了 Jenkins。您还安装并配置了 Apache2/httpd Web 服务器作为 Jenkins 的反向代理,并通过 SSL 证书和 firewalld 保护 Jenkins 安装。
除此之外,您还了解了 Jenkins 的基本初始配置以及如何通过 Jenkins 管理 Web 界面创建和运行 Jenkins 构建。
现在您已经完全运行 Jenkins 部署,您可以添加您的项目并为您的应用程序设置 Jenkins 构建。此外,您可以通过添加适合您的环境的插件来扩展 Jenkins 的功能。