Jenkins是什么
Jenkins 是一个可扩展的持续集成引擎。
主要用于:
- 持续、自动地构建/测试软件项目。
- 监控一些定时执行的任务。
Jenkins拥有的特性包括:
- 易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持。
- 易于配置-所有配置都是通过其提供的web界面实现。
- 集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。
- 生成JUnit/TestNG测试报告。
- 分布式构建支持Jenkins能够让多台计算机一起构建/测试。
- 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
- 插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。
Jenkins的目标
Jenkins的主要目标是监控软件开发流程,快速显示问题。所以能保证开发人员以及相关人员省时省力提高开发效率。
CI系统在整个开发过程中的主要作用是控制:当系统在代码存储库中探测到修改时,它将运行构建的任务委托给构建过程本身。如果构建失败了,那么CI系统将通知相关人员,然后继续监视存储库。它的角色看起来是被动的;但它确能快速反映问题。
特别是它具有以下优点:
- Jenkins一切配置都可以在web界面上完成。有些配置如MAVEN_HOME和Email,只需要配置一次,所有的项目就都能用。当然也可以通过修改XML进行配置。
- 支持Maven的模块(Module),Jenkins对Maven做了优化,因此它能自动识别Module,每个Module可以配置成一个job。相当灵活。
- 测试报告聚合,所有模块的测试报告都被聚合在一起,结果一目了然,使用其他CI,这几乎是件不可能完成的任务。
- 构件指纹(artifact fingerprint),每次build的结果构件都被很好的自动管理,无需任何配置就可以方便的浏览下载。
Jenkins安装
1.JDK安装
Jenkins的运行需要依赖jdk,所以在安装Jenkins之前我们得先把jdk装上。自行安装,这里不再介绍
2.Jenkins安装
以下四种方法任选一种,推荐第一种。
2.1 离线安装
## http://pkg.jenkins-ci.org/redhat/ wget http://pkg.jenkins-ci.org/redhat/jenkins-2.39-1.1.noarch.rpm ## 下载(也可以Windows下载再转过来) sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins.io.key ## 公钥 sudo yum -y install jenkins-*.noarch.rpm
2.2 在线安装
## http://pkg.jenkins-ci.org/redhat/ sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key sudo yum -y install jenkins
2.3 基于 Tomcat 安装
安装并启动 Tomcat; 从官网下载 jenkins.war 至 $CATALINA_BASE/webapps,Tomcat 会自动部署; 浏览器访问:http://centos:8080/jenkins/
2.4 免安装方式
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war sudo java -jar jenkens.war ## 启动服务,直至看到日志 `Jenkins is fully up and running` curl http://localhost:8080/ ## Jenkins 已就绪
3.修改Jenkins配置文件
现在Jenkins已经安装好了,不过启动之前最好稍微修改一下配置。默认情况是Jenkins是使用Jenkins用户启动的,但这个用户目前系统并没有赋予权限,这里我们将启动用户修改为root;另外Jenkins默认端口是8080,这个跟tomcat的默认端口冲突,我们也修改一下默认端口。
## sudo vim /etc/sysconfig/jenkins JENKINS_USER="root" ## 原值 "jenkins" 必须修改,否则权限不足 JENKINS_PORT="8060" ## 原值 "8080" ## 还有开启 HTTPS 相关参数,此处不打算开启,故不作说明
4.启动Jenkins服务
#启动 service jenkins start #停止 service jenkins stop
sudo systemctl enable jenkins sudo systemctl restart jenkins
- CentOS 7.x开始,CentOS开始使用systemd服务来代替daemon,原来管理系统启动和管理系统服务的相关命令全部由systemctl命令来代替。
- 原来的 service 命令与 systemctl 命令对比
daemon命令 | systemctl命令 | 说明 |
service [服务] start | systemctl start [unit type] | 启动服务 |
service [服务] stop | systemctl stop [unit type] | 停止服务 |
service [服务] restart | systemctl restart [unit type] | 重启服务 |
5.启动Jenkins服务
- 在浏览器输入ip:8086进入Jenkins登录页面。
- 进入登录页面后,Jenkins提示我们需要输入超级管理员密码进行解锁。根据提示,我们可以在/var/lib/jenkins/secrets/initialAdminPassword文件里找到密码。
- 输入命令以找到密码。
tail /var/lib/jenkins/secrets/initialAdminPassword
- 输入密码后,进入插件安装页面。点击Install suggested plugins,安装默认插件。
- 安装完成后,页面自动进入了管理员账户注册页面。
- 注册完账户,就进入主页面
6.全局安全设置
- 默认情况下,任何用户都可以使用 Jenkins 进行发布。
- 可以进入相关设置:系统管理 / 全局安全设置(Configure Global Security)
- 选择
Jenkins专有用户数据库
,不要选中允许用户注册
; - 选择
登录用户可以做任何事
,选中Allow anonymous read access
7.全局工具设置
- 进入:系统管理 / 全局工具设置(Global Tool Configuration)
- JDK 下不勾选“自动安装”,指定别名=
JDK-1.8.0.121
, JAVA_HOME=/usr/local/jdk1.8.0_121/jdk
- Maven 下不勾选“自动安装”,指定别名=
Maven-3.5.2
, MAVEN_HOME=/usr/local/maven/apache-maven-3.5.2
- 点击
Save
按钮。 - 重启 Jenkins 后生效:
service jenkins restart
sudo systemctl restart jenkins
8.插件安装
- 进入:系统管理 / 管理插件 / 可选插件
- 查找并勾选所需插件,点击“直接安装”;
- 无需重启 Jenkins 插件即生效。如遇失败可重试或离线安装
9.Jenkins卸载
如果要重装,或者本机不需要 Jenkins,可卸载:
sudo service jenkins stop sudo service jenkins disable sudo yum -y remove jenkins sudo rm -rf /var/{lib,log,cache}/jenkins /usr/lib/jenkins /root/.jenkins sudo rm -rf `sudo find /{etc,var,run} -name "jenkins*"`
sudo systemctl stop jenkins sudo systemctl disable jenkins sudo yum -y remove jenkins sudo rm -rf /var/{lib,log,cache}/jenkins /usr/lib/jenkins /root/.jenkins sudo rm -rf `sudo find /{etc,var,run} -name "jenkins*"`