一.gitlab实时触发jenkins(gitlab主动做了一个触发)
1.首先要在kenjins页面中添加gitlab插件
- 点开jenkins页面,点击系统管理->插件管理->可选插件->搜索gitalab->直接安装GitLab(注意:如果此处安装了别的插件,记得及时将其删除,否则可能会影响之后的实验)
- 会发现在安装过程中出现了报错,此原因是因为虚拟机没有连接网络
- 此时尝试在server2中连接网络,发现无法成功ping通网络
- [root@server2 ~]# ping www.baidu.com
- 首先需要关闭jenkins服务,在虚拟机可以成功连通网络后,再开启jenkins服务
[root@server2 ~]# systemctl stop jenkins
[root@server2 ~]# ping www.baidu.com [root@server2 ~]# systemctl start jenkins
- 再次进行安装,发现安装成功(注意:此时如果在可选插件中没有发现gitlab的话,在已安装中应该可以发现,我是直接将其卸载,重新进行安装了,避免之后产生问题)
- 在插件管理中查看已安装,发现此时gitlab插件已经成功安装
2.在jenkins中更改配置 - 点击jenkins中的test项目中的配置
- 点击构建触发器,选择Build when a change is pushed to GitLab.GitLab webhook URL://172.25.66.2:8080/project/test(即当推送到gitlab时,gitlab将通过集成传到某处),并点击高级
- 在高级设置中会看见右下方有一个Generate,点击他,使其自动生成Screct Token(注意:此时要将URL和token进行复制)
- 底下的配置不更改,点击保存,个人建议可以再点击应用
3.在gitlab中添加Webhooks
- 在gitlab中点击管理中心
- 点击设置
- 点击网络->外发请求->点击对勾(即允许钩子和服务对本地网络的请求)
- 选择项目demo->设置->集成,将jenkins中中URL和Secret Token中的内容粘贴到这里,此时将所有触发器都点击,为了明显的看出效果(注意,如果在jenkins中将其取消点击,并保存后,此时Serect Token便不生效了,因为其是随机的且每次都会发生改变)
- 此时会发现Webhook已经生成
- 点击Test->Push events(推送事件)
- 此时会发现上方会显示钩子已经成功
- 4.在jenkins中操作
- 点击工程test,发现此时生成了#2,说明有新的推送,并点击#2
- 为了查看详细的代码信息,点击控制台输出
- 发现控制台输出中显示成功
- 再次返回点击构建历史,查看时间轴,发现此时时间轴上有#2.说明成功
- 5.在物理机的kiosk用户下更改文件中的内容并上传
[kiosk@foundation66 ~]$ cd demo/
[kiosk@foundation66 demo]$ ls
[kiosk@foundation66 demo]$ vim index.html
[kiosk@foundation66 demo]$ git add index.html
#此处虽然有报错,但是不影响,但是建议设置
[kiosk@foundation66 demo]$ git commit -m “v2”
[kiosk@foundation66 demo]$ git push -u origin master
文件中的内容更改如下:
www.westos.com
www.westos.com
6.在gitlab中进行查看,发现可以成功车啊看到index.html,并显示最后提交是1分钟前
- 点进去后,发现文件的内容已经发生了更改
7.再次点击jenkins中的工程test,发现此时重新构建了#3 - 查看控制台输出,发现输出成功,且可以通过时间,发现与之前符合
- 查看时间轴,发现#3存在