持续集成
持续集成(Continuous integration,简称 CI)大师Martin Fowler对持续集成是这样定义的:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个开发成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。
Jenkins简介
Jenkins 是一个基于java开发的开源的跨平台持续集成工具,具有自动化构建、测试和部署项目等功能。Jenkins不仅支持web形式的可视化的管理页面,也支持插件,使得Jenkins可以集成很多插件(这些开源插件涵盖了系统版本控制、构建工具、代码质量度量、构建通知、外部系统集成等),可更好的持续集成工程项目。Jenkins支持主流操作系统的安装程序,也可以通过本机系统软件包Docker进行安装,甚至提供了任何安装了Java运行时环境(JRE)的机器都可以独立运行的war包。
安装Jenkins的前期准备(基于Centos7)
安装Java运行环境(可以是JRE或者JDK)
Jenkins是一个基于Java的Web应用程序,所以需要安装Java运行环境。
- 下载JDK到当前目录下
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u172-b11/a58eab1ec242421181065cdc37240b08/jdk-8u172-linux-x64.tar.gz
打开JDK官网,选择接受用户协议,然后右键就可以复制下载链接(注意:http包括以后的才是下载链接,前面的是命令参数)。 - 解压
tar -zxvf jdk-8u172-linux-x64.tar.gz
- 配置环境变量
命令vim /etc/profile
编辑环境配置文件,在profile文件配置JDK安装目录和JRE安装目录。
保存退出export JAVA_HOME=JDK安装目录 export JRE_HOME=JRE安装目录 PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
:wq
, 然后让配置生效source /etc/profile
安装代码管理工具
yum install git
下载最新的git
安装构建工具
- 下载maven
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
- 解压
tar -zxvf apache-maven-3.5.4-bin.tar.gz
- 配置环境变量
命令vim /etc/profile
编辑环境配置文件,在profile文件配置maven安装目录。
保存退出export MAVEN_HOME=maven安装目录 PATH=$PATH:$MAVEN_HOME/bin
:wq
, 然后让配置生效source /etc/profile
安装运行Jenkins(版本2.1)
Jenkins官网有两条生产线(LTS长期支持和Weekly),可以根据需求选择。
- LTS(长期支持):从正规版本的每12周中选择一次作为当时的稳定版本
- Weekly:每周发布一个新版本,为用户和插件开发人员提供错误修复和功能
下载安装
- 下载安装
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo #配置yum 源
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key #导入公钥
yum install jenkins #下载安装jenkins
用yum命令安装jenkins会有一些默认配置
- 在
/etc/init.d
目录下新建一个jenkins的服务启动脚本(文件名为jenkins),用于开机启动。 - 默认的日志文件在
/var/log/jenkins/jenkins.log
- 配置文件在
/etc/sysconfig/jenkins
- 默认端口是8080(在配置文件中可以配置)
- war包放在
/usr/lib/jenkins/
运行
Jenkins 的启动和停止
- 启动
systemctl start jenkins.service
- 重启
systemctl restart jenkins.service
- 停止
systemctl stop jenkins.service
第一次启动的时候可能会出现的问题。通过命令 systemctl status -l jenkins.service
查看错误信息。
● jenkins.service - LSB: Jenkins Automation Server
Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
Active: failed (Result: exit-code) since Fri 2018-07-13 11:08:31 CST; 4min 56s ago
Docs: man:systemd-sysv-generator(8)
Process: 8771 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=1/FAILURE)
Jul 13 11:08:31 chidean.novalocal systemd[1]: Starting LSB: Jenkins Automation Server...
Jul 13 11:08:31 chidean.novalocal runuser[8776]: pam_unix(runuser:session): session opened for user jenkins by (uid=0)
Jul 13 11:08:31 chidean.novalocal jenkins[8771]: Starting Jenkins bash: /usr/bin/java: No such file or directory
Jul 13 11:08:31 chidean.novalocal runuser[8776]: pam_unix(runuser:session): session closed for user jenkins
Jul 13 11:08:31 chidean.novalocal jenkins[8771]: [FAILED]
Jul 13 11:08:31 chidean.novalocal systemd[1]: jenkins.service: control process exited, code=exited status=1
Jul 13 11:08:31 chidean.novalocal systemd[1]: Failed to start LSB: Jenkins Automation Server.
Jul 13 11:08:31 chidean.novalocal systemd[1]: Unit jenkins.service entered failed state.
Jul 13 11:08:31 chidean.novalocal systemd[1]: jenkins.service failed.
这个错误可能是由于端口冲突或者是JDK的java命令配置错误或者是没有配置的问题导致的。如果JDK是手动安装配置的,就会出现这个问题。
- 修改端口号,配置文件
/etc/sysconfig/jenkins
56行附近。 - 增加java命令的配置。打开jenkins的启动脚本
/etc/init.d/jenkins
66行左右,加入java命令的路径(不是JDK的安装目录)
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java
/usr/local/java/jdk1.8.0_152/bin/java #加入java命令的路径
"
- 修改启动脚本需要执行
systemctl daemon-reload
命令,重载配置文件 - 启动jenkins
第一次运行
第一次启动Jenkins时,出于安全考虑,Jenkins会自动生成一个随机字符串,从Jenkins控制台日志输出中(在两组星号之间)。也可以在默认生成的位置中找到。将随机串复制到输入框中。
用插件定制Jenkins
解锁Jenkins后,将出现自定义 Jenkins页面。这个步骤有两个选项:
- 安装Jenkins社区推荐的插件
- 自己选择并安装适合的插件,在这里可以安装任意数量的有用的插件作为初始设置的一部分。
如果不确定需要哪些插件,就选择安装Jenkins社区推荐的插件。(可以在Manage Jenkins > Manage Plugins 页面管理Jenkins插件)
创建第一个管理员用户
在用插件定制Jenkins之后,Jenkins要求要创建第一个管理员用户。配置完用户之后,以后使用Jenkins都要通过这个账号来访问。
URL配置
Jenkins URL用于为各种Jenkins资源提供绝对链接的根URL。 这个值是许多Jenkins功能正常运行所必需的,包括电子邮件通知,PR状态更新以及为构建步骤提供的BUILD_URL环境变量。 最佳做法是将此值设置为预期使用的URL。
安装完成
配置全局工具
Jenkins构建需要用到构建工具、代码管理工具、JDK等。配置路径在系统管理->全局工具配置
配置JDK
如果不想用本地的JDK,jenkins也提供了在线安装的方式,勾选自动安装即可