什么是Jenkins?
Jenkins是一个基于java开发的程序集成工具,用于监控持续重复的工作,提供一个开放易用的软件平台,使持续集成变成可能。
Jenkins的目的
持续、自动构建/测试软件项目
监控软件开发流程,快速问题定位及处理,提升开发效率
Jenkins的特性
支持CI/CD
易于安装(yum、war包、rpm)
消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告
分布式构建:支持Jenkins能够让多台计算机一起构建/测试
文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本等
扫描二维码关注公众号,回复: 5141412 查看本文章插件支持:支持拓展插件,如:git、svn、maven、docker等
产品发布流程
产品设计->开发代码->测试功能->上线发布
通过Jenkins支持:
持续集成(Continuous integration简称CI)
持续交付(Continuous delivery)
持续交付(Continuous deplotment)
环境依赖
最低配置:内存不少于256M,磁盘不低于1G,jdk版本>=8
安装jdk1.8(这里为了简单直接yum)
[root@mode-01-0005 ~]# yum install -y java-1.8.0-openjdk && \ > wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo && \ > rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key && \ > yum clean all && yum makecache && \ > yum install -y jenkins && \ > systemctl start jenkins
查看Jenkins admin密码并记录
[root@mode-01-0005 ~]# less /var/log/jenkins/jenkins.log
安装相关目录
[root@mode-01-0005 ~]# rpm -ql jenkins
/etc/init.d/jenkins//启动文件
/etc/sysconfig/jenkins//配置文件
/var/cache/jenkins//缓存文件
/var/lib/jenkins//安装目录
/var/log/jenkins//日志文件
若端口有冲突优先修改默认端口
通过web端访问IP:8080
进入插件选择界面,如有明确需求,直接安装所需插件即可,这里选择的是推荐,推荐会安装大部分插件
根据引导创建用户、配置url即可完成安装
需求,结合gitlab做可持续化集成和发布
所需插件
Credentials Plugin | 签名证书管理插件 |
Gitlab Plugin | 安装后从gitlab获取代码 |
Git Plugin & Git Client Plugin | 用于Jenkins在gitlab拉取源码 |
GitLab Hook | gitlab触发Jenkins构建项目(钩子) |
Gitlab Authentication | gitlab和Jenkins认证相关得插件 |
SSH Plugin | 远程执行shell脚本 |
Publish Over SSH | 用于通过ssh部署应用 |
通过web打开Jenkins操作页面,在插件管理,可选插件中选择要安装的插件直接安装,安装完成后重启Jenkins
为git添加公钥
为公钥定义一个标题,并写入公钥
如果gitlab和Jenkins不在同一主机,那么需要将Jenkins生成的公钥写入
配置完成后测试是否可以获取代码
[root@mode-01-0005 ~]# git clone [email protected]:test-web/web.git Cloning into 'web'... \S Kernel \r on an \m remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0) Receiving objects: 100% (3/3), done.
测试通过后,为Jenkins添加私钥
选择类型并填入用户名及私钥
新建一个任务
配置项目描述及源码管理
配置完成后测试构建项目是否成功,检查控制台输出,success为成功
模拟发布web页面
安装apache服务,测试直接yum安装即可
apache启动时注意是否有端口冲突
写一个简单的测试文件,测试是否可以完成推送
[root@mode-01-0005 ~]# ./deploy.sh root Cloning into 'web'... \S Kernel \r on an \m remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0) Receiving objects: 100% (3/3), done. \S Kernel \r on an \m index.html 100% 11 75.3KB/s 00:00
[root@mode-01-0005 ~]# cat deploy.sh #!/bin/bash echo $USER cd /root/ git clone [email protected]:test-web/web.git cd /root/web scp -r ./* [email protected]:/var/www/html/ rm -rf /root/web
测试完成后继续
为了避免不必要的麻烦在visudo中配置Jenkins免密及执行ssh的权限
在构建中选择相对应的构建方式,保存后构建测试是否可用
多台web部署只需要增加scp即可
配置触发器,构建钩子,配置触发器在高级选项中Generate生产验证令牌,记录URL和令牌密钥
gitlab配置集成配置
创建成功后push event测试,获得返回码200为成功。
使用流程图展示jod的顺序
安装build pipeline插件,安装成功后做以下操作,根据实际需要在Display中选择显示的build次数即完成