8、【Jenkins】【Jenkins 使用】Jenkins 简
1、什么是 Jenkins
-
Jenkins 是一款基于 Java 开发的、开源的能够帮助软件项目实现持续集成(Continuous Integration, CI)、持续部署(Continuous Deployment, CD)的工具。
-
持续集成与持续部署(CI&CD)是当今软件开发领域中比较看重的。传统的集成、部署方式并不是非常困难,但是需要花费时间去进行这类重复的劳动,使得整个软件开发流程的效率降低,所以说,如果这些过程能够像工厂流水线那样实现自动化,那么整个软件周期效率会大幅提高。Jenkins 就是这样的一款软件。
-
Jenkins 为使用者提供友好的 Web 界面作为操作界面。
-
Jenkins 最强大的地方在于其丰富的插件,使之能够适应多种场景下的集成、测试、部署、维护等。
2、Jenkins 的启动、重启、停止
2.1、启动(适用于使用 WAR 包安装的情况)
使用java -jar
命令启动 WAR 包即可,建议后台运行。
nohup nohup java -jar /usr/local/jenkins/jenkins.war --httpPort=8777 > /usr/local/jenkins/jenkins_open.log 2>&1 &
打开输出重定向的“启动日志”,如果没有报错,打开浏览器,在地址栏中输入相应的 URL(比如http://193.168.3.43:8777
)即可。
2.2、重启
- 在浏览器的地址栏中输入 URL(比如
http://193.168.3.43:8777
)后加/restart
(即http://193.168.3.43:8777/restart
),敲击回车,会进入到如下页面:
点击“是”按钮,页面跳转,提示等待重新启动:
重启中2.3、停止
- 方案1(建议方案):在浏览器的地址栏中输入 URL(比如
http://193.168.3.43:8777
)后加/exit
(即http://193.168.3.43:8777/exit
),敲击回车,会进入到如下页面:
点击“使用 POST 重试”,即可停止 Jenkins。
- 方案二(不建议):使用 Linux 进程管理命令,直接关闭这个进程。
3、Jenkins 中的术语
-
Item(项目):类似于软件开发工具中的“工程”这一概念,也可以称 Job。可以理解成 Jenkins 实现自动化集成、部署等操作的一个单位,一个 Item 可以对应一个软件项目(“负责”一个软件项目),进而实现对该软件项目的集成、部署等操作自动化。
根据不同的场景,可以创建不同类型的 Item。 -
Build(构建):Build 基于 Item 的,也就是“构建项目”,“构建”这一词的涵盖很多,但是具体的定义权在于使用者即使用者对 Item 进行什么样的配置(主要是“构建”配置)。
使用者在执行一次“构建”前在 Item 中配置了其“负责”的软件项目的部署脚本,执行一次“构建”就相当于重新部署该软件项目。
对于一个 Item 来说,可以根据实际情况 Build 多次。 -
Node(节点):Node 可以理解成在一个多服务器主机的场景下,一个 Node 就表示一个服务器主机。默认情况下,安装有 Jenkins 的服务器主机在 Jenkins 中其对应的节点名为 master。通过使用 Node,可以更为方便地实现一些软件项目的远程集成、部署等。
4、Jenkins 简单体验 —— 创建一个简单的 Item 以及尝试 Build
- 点击主页左侧的“新建任务”,进入创建 Item 的界面:
- 输入名称、选择 Item 的类型,点击“确定”,在这里选择“构建一个自由风格的软件项目”作为实例:
- 上一步点击“确定”后,进入了该 Item 的配置页面:
- 点击的“构建”标签,点击“增加构建步骤”,选择“执行 Shell”:
- 在自动弹出的文本框中编写 Shell 脚本,最后然后点击“保存”,页面跳转至该 Item 的主页:
- 可以返回 Jenkins 首页,已经列出了已创建的 Item:
- Build 创建出的 Item,回到 Item 的主页,点击左侧的“立即构建”:
- 如果构建成功,会在左侧的“构建历史”新增一条带有“蓝色小球”标志的记录;如果构建失败,会在左侧的“构建历史”新增一条带有“红色小球”标志的记录。如果是首次构建,该条记录的默认编号是
#1
,后续的依次是#2
、#3
等(不论构建成功或失败):
- 点击左侧“构建历史”中的某次构建的记录(是一个超链接),可以进入查看那次构建详细的一些信息(进入了“构建记录的主页”):
- 到了这一步,到底是一个什么意思,“构建成功了”又如何。回到刚才,在 Item 配置中的“构建”选择的是“执行 Shell”,那是否是在这里执行“构建”,相当于在本机上执行了这个 Shell 脚本。
但查看本机系统后,并没有该 Shell 脚本执行后的输出。这是查看的“姿势不对”,进入“构建记录的主页”,点击左侧的“控制台输出”,便会看到 Shell 的执行结果:
- 综上,就是一个简单的例子。可以看到,通过 Jenkins 先建立 Item,通过 Item 去实现对某一软件项目(本地的或远程的)的各种管理,事先通过配置“告诉” Item “构建”的“策略”(比如说 Shell 脚本等),等到 Build 的时候,就是自动地去执行用户给定的“策略”。这就是 Jenkins 的基本思路,当然 Jenkins 功能十分强大,能做的还有很多。