什么是詹金斯?
Jenkins 是一个用 Java 和 Scala 编写的开源软件。 该软件使用户能够自动执行几乎所有任务,并且节省了大量时间,可以更好地用于解决其他问题。 使用 Jenkins 自动化任务时,用户可以通过快速自动化服务器无法自行完成的工作来优化他们的工作流程。 在本教程中,我们将学习如何在 CentOS 8 上安装 Jenkins。我们还将探讨其用途并分享 Jenkins 提供的几个好处。 然后我们将其配置为在我们的 CentOS 8 服务器上运行。
为什么使用詹金斯?
如果您过去研究过 DevOps 角色,那么您会遇到 CI/CD 一词。 第一个首字母缩写词 CI 代表持续集成,指的是代码的自动组装和测试(即,当我们编写代码时,我们将所有设置、附加库、框架和代码本身收集到一个可立即运行的应用程序中)。 持续部署或 CD 是指在服务器上持续部署应用程序以运行它们。
还有另一个方面与持续交付结合使用。 该术语意味着将应用程序持续交付到服务器。 两者之间最显着的区别是持续部署表示自动化过程,而持续交付表示手动过程。 这些过程经常重复以最大程度地自动化它们,从而简化工作量,减少错误数量,更重要的是加快部署过程。
Jenkins就是可以完成这些流程和功能的工具。 此外,它不仅很容易达到这种能力水平,而且在这些任务中表现出色。 Jenkins 提供的最重要的好处如下:
- Jenkins 是一个免费的开源应用程序。
- 它的易于配置扩展到包含多个环境。
- 它具有出色的稳定性和寿命记录。
- Jenkins 是独立于平台的,因此它几乎适用于所有环境。
- Jenkins 支持云原生环境。
- 它提供了大量的工具和插件,从而增加了它的功能。
- Jenkins 可以在两个或多个不同的环境中使用双重操作模式。
- 它有一个重要的社区基础,这增加了支持选项和文档的可用性。
在 CentOS 8 上安装 Jenkins
先决条件
在本教程中,我们需要以下首选项来完成此过程。
- 2 GB RAM 和双核服务器。
- CentOS 8 操作系统
注意:我们以root用户执行以下命令。 如果您以标准用户身份运行命令,请不要忘记使用 sudo 命令。
首先,我们将通过运行以下命令来更新我们的系统和已安装的应用程序:
[root@host]# dnf update -y
Last metadata expiration check: 0:00:06 ago on Sun 27 Dec 2020 03:25:00 PM EST.
Dependencies resolved.
Nothing todo.
Complete!
[root@host]#
安装 JDK
为了让 Jenkins 有效工作,我们需要安装 Java 开发工具包(JDK 是一个 Java 应用程序开发工具包,包括 Java 编译器 (javac)、标准 Java 类库和随附的 JRE 文档)。 较新版本的 Jenkins 使用的是 JDK 11,但是之前写的一些插件可能与 Java 11 不兼容,所以在某些情况下,最好使用 Java 8。如果服务器已经安装了 JDK,则可以跳过后面的步骤. 在这一步中,我们使用以下命令安装 JDK 8。
[root@host]# dnf install java-1.8.0-openjdk-devel -y
Last metadata expiration check: 0:01:24 ago on Sun 27 Dec 2020 03:32:26 PM EST.
Dependencies resolved.
=====================================================
Package Arch Version Repo Size
=====================================================
Installing:
java-1.8.0-openjdk-devel x86_64 1:1.8.0.272.b10-3.el8_3 appstream 9.8 M
Installing dependencies:
copy-jdk-configs noarch 3.7-4.el8 appstream 27 k
java-1.8.0-openjdk x86_64 1:1.8.0.272.b10-3.el8_3 appstream 329 k
java-1.8.0-openjdk-headless x86_64 1:1.8.0.272.b10-3.el8_3 appstream 34 M
javapackages-filesystem noarch 5.3.0-1.module_el8.0.0+11+5b8c10bd
appstream 30 k
lksctp-tools x86_64 1.0.18-3.el8 baseos 100 k
ttmkfdir x86_64 3.0.9-54.el8 appstream 62 k
tzdata-java noarch 2020d-1.el8 appstream 190 k
xorg-x11-fonts-Type1 noarch 7.5-19.el8 appstream 522 k
Enabling module streams:
javapackages-runtime 201801
Transaction Summary
=====================================================
Install 9 Packages
Total download size: 45 M
Installed size: 160 M
Downloading Packages:
(1/9): copy-jdk-configs-3.7-4.el8.noarch.rpm 2.0 MB/s | 27 kB 00:00
(2/9): java-1.8.0-openjdk-1.8.0.272.b10-3.el8_3 3.9 MB/s | 329 kB 00:00
(3/9): javapackages-filesystem-5.3.0-1.module_e 2.9 MB/s | 30 kB 00:00
(4/9): ttmkfdir-3.0.9-54.el8.x86_64.rpm 1.5 MB/s | 62 kB 00:00
(5/9): tzdata-java-2020d-1.el8.noarch.rpm 2.6 MB/s | 190 kB 00:00
(6/9): xorg-x11-fonts-Type1-7.5-19.el8.noarch.r 2.7 MB/s | 522 kB 00:00
(7/9): lksctp-tools-1.0.18-3.el8.x86_64.rpm 1.3 MB/s | 100 kB 00:00
(8/9): java-1.8.0-openjdk-devel-1.8.0.272.b10-3 4.7 MB/s | 9.8 MB 00:02
(9/9): java-1.8.0-openjdk-headless-1.8.0.272.b1 7.1 MB/s | 34 MB 00:04
--------------------------------------------------------------------
Total 8.3 MB/s | 45 MB 00:05
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
…
Installed:
copy-jdk-configs-3.7-4.el8.noarch
java-1.8.0-openjdk-1:1.8.0.272.b10-3.el8_3.x86_64
java-1.8.0-openjdk-devel-1:1.8.0.272.b10-3.el8_3.x86_64
java-1.8.0-openjdk-headless-1:1.8.0.272.b10-3.el8_3.x86_64
javapackages-filesystem-5.3.0-1.module_el8.0.0+11+5b8c10bd.noarch
lksctp-tools-1.0.18-3.el8.x86_64
ttmkfdir-3.0.9-54.el8.x86_64
tzdata-java-2020d-1.el8.noarch
xorg-x11-fonts-Type1-7.5-19.el8.noarch
Complete!
[root@host]#
验证 JDK 安装
要验证软件是否安装正确,请运行此命令。
[root@host]# java -version
openjdk version "1.8.0_272"
OpenJDK Runtime Environment (build 1.8.0_272-b10)
OpenJDK 64-Bit Server VM (build 25.272-b10, mixed mode)
[root@host]#
添加 Jenkins 存储库
接下来,我们将 Jenkins 的官方存储库添加到我们的系统中。
[root@host]# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
--2020-12-27 15:36:56-- https://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
Resolving pkg.jenkins-ci.org (pkg.jenkins-ci.org)... 52.202.51.185
Connecting to pkg.jenkins-ci.org (pkg.jenkins-ci.org)|52.202.51.185|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 85
Saving to: '/etc/yum.repos.d/jenkins.repo'
/etc/yum.repos.d/je 100%[===================>] 85 --.-KB/s in 0s
2020-12-27 15:36:56 (24.7 MB/s) - '/etc/yum.repos.d/jenkins.repo' saved [85/85]
[root@host]#
验证安全密钥
接下来,我们将添加一个密钥来验证存储库的安全性。
[root@host]# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
[root@host]#
更新包
现在我们将重新运行我们的更新,以便新的存储库被识别并可用。
[root@host]# yum update
Jenkins-stable 58 kB/s | 19 kB 00:00
Dependencies resolved.
Nothingtodo.
Complete!
[root@host]#
安装詹金斯
现在我们所有的初始条件都已经满足了,我们可以安装 Jenkins。
[root@host]# yum install jenkins -y
Last metadata expiration check: 0:01:43 ago on Sun 27 Dec 2020 03:38:25 PM EST.
Dependencies resolved.=================================================== Package Architecture Version Repository Size===================================================
Installing:
jenkins noarch 2.263.1-1.1 jenkins 64 M
Transaction Summary===================================================
Install 1 Package
Total download size: 64 M
Installed size: 64 M
Downloading Packages:
jenkins-2.263.1-1.1.noarch.rpm 7.4 MB/s | 64 MB 00:08 --------------------------------------------------------------------------
Total 7.4 MB/s | 64 MB 00:08
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Running scriptlet: jenkins-2.263.1-1.1.noarch 1/1
Installing : jenkins-2.263.1-1.1.noarch 1/1
Running scriptlet: jenkins-2.263.1-1.1.noarch 1/1
Verifying : jenkins-2.263.1-1.1.noarch 1/1
Installed products updated.
Installed:
jenkins-2.263.1-1.1.noarch
Complete!
[root@host]#
配置 Jenkins 服务
詹金斯已经安装好了。 让我们启动服务并将其配置为在系统重新启动时自动运行。
重启服务
[root@host]# systemctl daemon-reload
[root@host]#
启动 Jenkins 服务
[root@host]# systemctl start jenkins
[root@host]#
Now, we can check the service status of Jenkins.
[root@host]# systemctl status jenkins
jenkins.service - LSB: Jenkins Automation Server
Loaded: loaded (/etc/rc.d/init.d/jenkins; generated)
Active: active (running) since Sun 2020-12-27 15:53:57 EST; 22s ago
Docs: man:systemd-sysv-generator(8)
Process: 4942 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=0>
Tasks: 45 (limit: 49357)
Memory: 992.9M
CGroup: /system.slice/jenkins.service
└─4968 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Dja>
Dec 27 15:53:57 localhost.localdomain systemd[1]: Starting LSB: Jenkins Automat>
Dec 27 15:53:57 localhost.localdomain runuser[4949]: pam_unix(runuser:session):>
Dec 27 15:53:57 localhost.localdomain runuser[4949]: pam_unix(runuser:session):>
Dec 27 15:53:57 localhost.localdomain jenkins[4942]: Starting Jenkins [ OK ]
Dec 27 15:53:57 localhost.localdomain systemd[1]: Started LSB: Jenkins Automati>
lines 1-15/15 (END)
The specific lines noted below are important factors we should be aware of from the command’s output.
jenkins.service - LSB: Jenkins Automation Server
Loaded: loaded (/etc/rc.d/init.d/jenkins; generated)
Active: active (running) since Sun 2020-12-27 15:53:57 EST; 22s ago
配置并重新加载防火墙
接下来,我们需要配置防火墙,以便 Jenkins 可以与服务器通信。 该软件使用端口 8080,因此我们将在防火墙中打开该端口。
[root@host]# firewall-cmd --permanent --zone=public --add-port=8080/tcp
success
[root@host]#
现在,我们可以重新加载防火墙,让我们的更改生效。
[root@host]# firewall-cmd --reload
success
[root@host]#
配置詹金斯
现在我们继续编辑 Jenkins 配置以定义它将如何运行。
首先,我们需要检索服务器的 IP 地址。 Enter 使用以下命令查找此信息。
[root@host]# ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.50.189 netmask 255.255.255.0 broadcast 192.168.50.255
inet6 fe80::93ba:cfae:bd1f:6ad7 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:07:29:a0 txqueuelen 1000 (Ethernet)
RX packets 89276 bytes 133684641 (127.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 43642 bytes 2850349 (2.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@host]#
支付 close 注意 inet 线路,因为我们很快就会需要 IP。
网络 192.168.50.189
接下来,我们打开浏览器并使用从 inet 行获得的 IP 输入以下地址。
https://YOUR_IP:8080
在我们的例子中,它看起来像这样。
https://192.168.50.189:8080
您将需要使用运行 ifconfig 命令时提供的 IP。 不要使用 192.168.50.189 知识产权.
找到管理密码
在地址栏中输入信息后,将出现以下屏幕。
这里我们输入管理员密码。 密码是自己生成的,我们可以通过以下命令获取。
[root@host]# cat /var/lib/jenkins/secrets/initialAdminPassword
ee31e4195008434691d24d451bef2e2b
[root@host]#
复制命令的长密码输出并将其粘贴到密码字段中。
接下来,单击 继续.
加载插件
现在,我们需要加载我们的插件。 在下一个屏幕上,选择“安装建议的插件”并等到该过程完成。

安装完成后,我们将看到一个帮助创建管理员用户的弹出窗口。
填写要求的信息以完成此步骤。

点击 ”Save 并继续。” 我们需要指明我们将使用哪个 URL 进入下一个屏幕的设置界面。 在我们的设置中,我们使用之前数据中的地址 https://192.168.50.189:8080。

点击 Save 并完成.
接下来,点击 开始使用詹金斯 按钮。 然后,点击 开始,然后 Jenkins 仪表板将打开。

Jenkins 安装和配置现已完成。

结论
回顾一下,Jenkins 是一个开源、免费的自动化工具,用于帮助自动化与构建、测试和部署软件相关的软件开发过程的许多部分。 它使我们能够通过稳定的方法系统促进和改进 CI/CD(持续集成和持续交付)程序。 我们了解了 Jenkins 的用途以及为什么它是在多种情况下使用的有益软件。 我们安装了 JDK 包以与 Jenkins 一起工作,然后我们配置了官方存储库以供下载并安装了 Jenkins 软件。 此外,我们配置了 Jenkins 服务,启动了它,创建了一个用户,并设置了它以供进一步使用。 最后,我们演示了如何在浏览器中对其进行管理。
我们的支持团队充满了才华横溢的 Linux 专业人士,他们对多种网络托管技术(包括本文中讨论的技术)有着深入的了解。 如果您是完全托管的 VPS 服务器, Cloud 专用,VMWare 私有 Cloud,私人父服务器或专用服务器所有者,并且您对执行概述的任何步骤感到不舒服,可以通过电话 @800.580.4985 联系我们, 聊天 或支持票以帮助您完成此过程。