为什么要持续集成?
1 | 持续集成,简称CI。持续集成指的是,频繁的(一天多次)将代码集成到主干 |
1 | 开发上传自己的代码到Gitlab, Gitlab发消息给Jenkins,随后Jenkins从仓库拉取代码,最后全自动部署到测试服务器进行相关测试,并将测试结果通知运维和开发,这种自动测试的方法叫做持续交付。 |
1 | 行话:CI/CD 指的是持续集成/持续交付/持续部署 |
化整为零
1 | 1.这套组合可以分成源码管理、编译构建、远程部署 |
配置部署
环境
1 | node1 10.0.10.21 角色:Jenkins Master、Maven、Git、JDK |
Node1-21配置
- Jenkins
参考:Jenkins安装-Docker
1 | rpm方式安装 |
1 | rpm -ql jenkins |
- Maven安装
1 | Maven负责java语言的编译和打包。换个角度来说,Maven相当于Java中的make命令。 |
安装JDK
1 | yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel |
安装Maven
1 | (1) 获取安装包 |
- 编译安装git
1 | wget https://www.kernel.org/pub/software/scm/git/git-2.12.0.tar.gz |
安装编译环境
1 | yum groupinstall "Development tools" |
编译安装
1 | tar -zxvf git-2.12.0.tar.gz && cd git-2.12.0 |
配置Jenkins
指定Maven、Git和JDK的安装路径
1 | Jenkins Web -- 系统管理 -- Global Tool Configuration |
Jenkins优化
- 增加执行者数量
1 | 系统管理--系统设置 -- 修改执行者数量 -- 保存 |
- 配置Jenkins邮箱设置
1 | 系统管理--系统设置 -- 修改系统管理员邮箱地址 -- 保存 |
配置Jenkins连接Gitlab
1 | (1)新建 -- 输入item name(比如:garywu) -- 选择构建一个自由风格的软件项目 -- OK保存 |
1 | (3) 构建 -- 选择“Execute shell” -- 输入测试命令“df -h” |
项目手动构建
1 | 主页 -- 点击项目并进入项目 -- 左侧点击“立即构建” -- 构建若出现错误显示红色,可以看到控制台日志来查看具体错误,一般是权限问题。 |
Gitlab代码提交Jenkins自动构建
- 配置Gitlab token
1 | (1)安装插件: GitLab Plugin |
- 配置item-生成Jenkins token
1 | jenkins -- 点击item --构建触发器 -- 勾选"Build when a change is pushed to GitLab. GitLab CI Service URL: http://192.168.56.15:8080/project/oldtboyedu" -- 点击“高级” -- 生成Jenkins token -- 把此界面中的URL和Token复制出来放到文本文件,稍后会用到 -- 最后保存配置 |
- 配置Gitlab项目
1 | 进入唯一的37team主页 -- settings -- Integrations -- URL填写上面保存的URL -- secret Token 粘贴刚才生成的Jenkins token -- 最后点击"Add webhook" |
- 代码提交后自动构建-测试验证
1 | 向Gitlab project项目中添加一个文件,并简单写下描述,然后立即打开Jenkins项目中构建页面,可以看到已经自动生成了一个新的构建并自动开始运行了,至此就实现了自动构建功能 |
关于生产环境实践
一:分组上线
1 | 倘若nginx代理10台后端tomcat,由于启动需要时间,所以务必分组上线 |
二:灰度发布
1 | 灰度发布指黑与白之间,能给平衡过渡的一种发布方式。 |
- 本文作者: GaryWu
- 本文链接: https://garywu520.github.io/2017/12/05/部署Gitlab-maven-jenkins持续集成环境-进阶1/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!