Centos7 Jenkins
代码上线持续集成
随时随地将代码合并,这种方法叫做持续集成。
持续集成(CONTINUOUS INTEGRATION,简称CI)
持续集成指的是,频繁地(一天多次)将代码集成到主干。
它的好处主要有两个。
(1)快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比
较容易。
(2)防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的
难度变大,甚至难以集成。
持续交付
· 持续交付(CONTINUOUS DELIVERY)指的是,频繁地将软件的新版本,交付给质量团队
或者用户,以供评审。 如果评审通过,代码就进入生产阶段。
· 持续交付可以看作持续集成的下一步。它强调的是,不管怎么更新,软件是随时随地可以
交付的。
持续部署
· 持续部署(CONTINUOUS DEPLOYMENT)是持续交付的下一步,指的是代码通过评审以后,
自动部署到生产环境。
· 持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231756710-1414506884.png
JENKINS介绍
JENKINS是一个用JAVA编写的开源的持续集成工具。在与ORACLE发生争执后,项目从HUDSON项目独立出来。
JENKINS提供了软件开发的持续集成服务。它运行在SERVLET容器中(例如APACHETOMCAT)。它支持软件配置管理(SCM)工具(包括ACCUREV SCM、 CVS、 SUBVERSION、GIT、 PERFORCE、 CLEARCASE和RTC),可以执行基于APACHE ANT和APACHE MAVEN的项目,以及任意的SHELL脚本和WINDOWS批处理命令。 JENKINS的主要开发者是川口耕介。
JENKINS是在MIT许可证下发布的自由软件。
安装JENKINS
环境准备
[*]
准备2台安装好CENTOS7.2系统的虚拟机,内存1G+。
[*]
所有虚拟机的防火墙和SELINUX关闭
[*]
主机名及IP地址关系如下:
Jenkins 10.0.0.202 不需要安装软件
Gitlab 10.0.0.201 安装好gitlab
[*]
Linux中能发邮件的账号
安装JENKINS
常规安装方法:使用RPM包安装
RPM包下载地址:
http://pkg.jenkins.io/redhat-stable/
清华源地址: https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231757429-784378991.png
yum安装jdk
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
安装rpm包
rpm -ivh jenkins-2.73.1-1.1.noarch.rpm
启动
/etc/init.d/jenkins start
解锁JENKINS
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231758757-822266261.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231801554-209996857.png
黏贴上去
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231804710-460726111.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231807944-1064816113.png
安装插件
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231808726-1110191800.png
上传并解压插件
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231809476-815394110.png
安装插件离线包
tar xfP jenkins_plugins.tar.gz
/etc/init.d/jenkins restart
注: Jenkins插件目录/var/lib/jenkins/plugins/
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231815007-462488430.png
Jenkins使用
# rpm -ql jenkins
/etc/init.d/jenkins # 启动文件
/etc/logrotate.d/jenkins # 日志轮询
/etc/sysconfig/jenkins # Jenkins主配置文件
/usr/lib/jenkins # 存放war包
/usr/lib/jenkins/jenkins.war # war包
/usr/sbin/rcjenkins # 命令
/var/cache/jenkins # Jenkins的web站点目录
/var/lib/jenkins # Jenkins的工作目录
/var/log/jenkins # 日志
配置并发执行任务数量
系统管理à系统设置
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231816413-1937746067.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231817054-535550879.png
配置邮箱
系统管理à系统设置
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231819772-1279331662.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231820772-577610902.png
自动测试项目
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231821304-855332161.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231823101-1499749968.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231824741-632251727.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231826866-145014139.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231835788-776038531.png
gitlab添加公钥
ssh-keygen
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231837038-95661455.png
cat .ssh/id_rsa.pub
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231838382-1495997493.png
在gitlab web界面添加key
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231840647-213802803.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231841163-1487854594.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231843866-1678022107.png
把私钥放入Jenkin
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231845397-1501190656.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231846741-766657950.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231847663-630178957.png
cat .ssh/id_rsa
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231851866-1600666110.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231853179-1548727285.png
jenkins 构建工作的目录
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231853835-340948651.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231854319-123122916.png
创建目录
mkdir /data/ccc –p
添加数组
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231855069-1605524734.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231855522-477009379.png
gitlab创建文件
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231858460-3828321.png
测试拉取项目
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231859913-803872602.png
/var/lib/jenkins/workspace/ 工作目录
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231901491-669909819.png
Git Jenkins自动同步
配置 git 链接 Jenkins
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231902163-640751540.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231903116-307027937.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231904038-2128221961.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231905741-798794697.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231906601-2012725339.png
选择链接
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231908522-930068397.png
配置系统设置
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231909444-655007133.png
配置链接密码
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231910085-1712429083.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231911929-2073032264.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231913194-1335969229.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231913788-1557708403.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231915241-305228435.png
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231917366-2037811358.png
点击测试
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231922601-1046339419.png
Jenkins自动同步了
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231923351-943172747.png
在 git测试
创建文件并推送gitlab
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231925382-1940322551.png
查看jenkins 状态
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231926304-2047445128.png
查看文件是否自动推送
https://images2018.cnblogs.com/blog/1265569/201712/1265569-20171203231927116-1516170006.png
页:
[1]