安装的插件
gitlab相关的 #代码
Role-based Authorization Strategy #权限管理
Blue Ocean #流水线形式
Authorize Project Plugin
#jenkins角色授权管理
#邮箱配置
“系统管理”-“系统配置”先设置“系统管理员邮件地址”,再配置最下边的smtp服务器。
jenkins克隆代码(任意一台服务器)
- 推荐使用脚本clone代码,便于控制版本
- 使用jenkins克隆
分发代码
服务器需要免密登陆
scp copy代码到对应到目录
copy代码的时候需要关闭服务器
copy完成后需要重启服务
1 | #使用jenkins拉取完成代码,代码默认的位置为:/var/lib/jenkins/workspace/trad |
jenkins分布式实现代码部署
pipline简介,实现基于pipline的代码部署
sonarqube简介。7.9.2部署及功能简介
jenkins结合代码扫描实现代码扫描
jenkins实现代码自动部署和回滚
gitlab的分支管理和触发器(钩子)
代码部署流程:
- 开发提交或者合并代码
- 运维clone代码
- 代码质量测试(sonarqube)
- 代码打包或者编译(maven)
- 代码分发(scp,ansible,saltstack)到web服务器
- web服务器部署代码,负载均衡下线服务器,停止服务器,升级代码,重启,代码测试
- 上线到负载均衡
- 对外提供服务
测试和开发代码可以执行自动部署。。
基于钩子触发。
jenkins安装gitlab插件:
Gitlab Hook Plugin,安装会有警告信息,因为相关配置信息会以明文形式存在
Gitlab Authentication plugin
- 修改配置,设置为登陆用户可以做任何事情
- 项目内开启“触发远程构建 (例如,使用脚本)”
http://192.168.0.221:8080/job/trad-dev/build?token=12345678
jenkins分布式
减少单台服务器的压力
master
slave1
slave2
代码回滚
jenkins2.0 开始支持pipline
jenkins使用pipeline执行远程脚本时出现Host key verification failed错误
因为jenkins安装时候默认会使用jenkins用户去执行scp或者ssh命令,但是jenkins用户无权限去远程连接。
解决办法:
需要启动组合用户为root
1
2
3
4# vim /etc/default/jenkins
## user and group to be invoked as (default to jenkins)
## JENKINS_USER=root
## JENKINS_GROUP=root让jenkins用户有权
1
2# su - jenkins
# ssh-copy-id -i /var/lib/jenkins/.ssh/id_rsa.pub root@192.168.0.225