Linux下安装部署Jenkins

一、Jenkins是什么?

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。

Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

二、CI/CD是什么?

CI(Continuous integration,中文意思是持续集成)是一种软件开发时间。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。借用网络图片对CI加以理解。

Linux下安装部署Jenkins

CD(Continuous Delivery, 中文意思持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境。下图反应的是CI/CD 的大概工作模式。

Linux下安装部署Jenkins

三、安装Jenkins

3.1、安装JDK

Jenkins的运行需要依赖jdk,所以在安装Jenkins之前我们得先把jdk装上。

3.2、yum安装Jenkins

这里推荐使用yum方式安装Jenkins,最简单方便。

yum的repos中默认是没有Jenkins的,需要先将Jenkins存储库添加到yum repos。

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install -y jenkins

现在Jenkins已经安装好了,不过启动之前最好稍微修改一下配置。

默认情况是Jenkins是使用Jenkins用户启动的,但这个用户目前系统并没有赋予权限,这里我们将启动用户修改为root;另外Jenkins默认端口是8080,这个跟tomcat的默认端口冲突,我们也修改一下默认端口。

vim /etc/sysconfig/jenkins

在配置文件中很容易找到

Linux下安装部署Jenkins

JENKINS_USER="root"
JENKINS_PORT="8081"

Linux下安装部署Jenkins

修改完配置后,保存退出。好了,现在配置文件也修改好了,可以启动Jenkins了。

输入启动命令以启动Jenkins服务。

service jenkins start

出现OK表示Jenkins启动成功。

在浏览器输入ip:8081进入Jenkins登录页面。

Linux下安装部署Jenkins

进入登录页面后,Jenkins提示我们需要输入超级管理员密码进行解锁。根据提示,我们可以在/var/lib/jenkins/secrets/initialAdminPassword文件里找到密码。

输入命令以找到密码。

tail /var/lib/jenkins/secrets/initialAdminPassword

找到密码后,复制密码,粘贴到Jenkins解锁页面,点击Continue继续初始化配置。短暂的等待后,进入插件安装页面。

Linux下安装部署Jenkins

这里我们点击的Install suggested plugins,安装默认插件,当然你也可以点击另一个按钮安装指定的插件。

Linux下安装部署Jenkins

点击后,页面进入了插件下载安装页面。

耐心等待全部安装完成。安装完成后,页面自动进入了管理员账户注册页面。

Linux下安装部署Jenkins

这个页面大家肯定都不陌生,自己输入信息注册吧。输入完信息点击Save and Finish。

Linux下安装部署Jenkins

点击Start using Jenkins,进入Jenkins主页面。

Linux下安装部署Jenkins

四、使用Jenkins

4.1、构建结果说明

构建状态

  • Successful蓝色:构建完成,并且被认为是稳定的。
  • Unstable黄色:构建完成,但被认为是不稳定的。
  • Failed红色:构建失败。
  • Disable灰色:构建已禁用

构建稳定性

构建稳定性用天气表示:晴、晴转多云、多云、小雨、雷阵雨。天气越好表示构建越稳定,反之亦然。

4.2、jenkins权限管理

由于jenkins默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三发插件来支持角色的配置,本文将使用Role Strategy Plugin。

4.3、jenkins备份

在jenkins界面创建一些项目,这里使用rsync,主要是为了保持备份的属性,如果使用scp或cp有时会导致文件属性的改变而导致jenkins异常。

rsync -raz --progress /var/lib/jenkins /data/backup/jenkins/

五、Jenkins思维导图

至此,就可以用jenkins周而复始的进行CI了,当然jenkins是一个强大的工具,功能绝不仅仅是以上这些,其他方面要是以后用到。

最后,放上一张Jenkins的思维导图:

Linux下安装部署Jenkins