赞
踩
gitlab+jenkins+kubernates 的 gitlab 这里,配置做好以后,做一个gitlab新增项目规范文档后,之后几乎不再需要运维插手,有任何新项目,研发兄弟们只需要照的文档加点儿东西即可实现代码自动被发布。
下面的内容就是如何让它触发 jenkins 了。策略就是某个项目在 gitlab 上打了 tag 后,就调用 jenkins 提供的回调接口,jenkins 收到 gitlab 的通知,来这个项目上拉取最新 tag 下的项目
首先在git上创建一个只用于和 jenkins 交互的用户op
创建好用户后,给 op 用户设置密码
然后先使用 op 这个用户,先创建一个用于测试的项目
然后就是选择git和jenkins的交互方式了,通俗易懂点儿的话说,其实就是想办法让 jenkins 可以免密克隆git上的项目代码。有两种方式可以选择,第一种是使用jenkins服务器的ssh公钥在 gitlab服务器上生成一个 sshkey ,然后jenkins就可以通过 git 的 ssh 地址拉取代码了;第二种是直接使用 gitlab 用于拉取代码的用户密码,这种方式使用 ssh 地址或者 http 地址都可以拉代码。这两种方式,只有第一种方式需要在 gitlab 上做 sshkey 的配置,第二种不需要在 gitlab 上做任何事。
如果使用第一种方式,需要在 gitlab 里将 jenkins 服务器的公钥按下面的方式生成。
登陆op用户,给此用户创建 ssh key ,公钥使用 jenkins 服务器上的 .ssh/id_rsa.pub (可使用 ssh-keygen 命令生成,注意,用哪个用户启动的jenkins服务,就用哪个用户的 .ssh/id_rsa.pub),因为之后是 jenkins 服务器去拉取 gitlab 上的项目。
如果使用第二种方式,不需要在 git 上做什么,直接在 jenkins上使用 git 的用户密码生成一个连接钥匙即可。
进入git项目后,在 setting 中选择 webhooks
jenkins这两条信息,在博客 《git+jenkins+harbor+kubernates可持续集成构建之 —— centos7.7安装配置jenkins》的这一段 “#3 配置gitlab自动触发jenkins”
如果添加时报错,说明gitlab服务器没有开启 webhook 功能,使用 admin 用户去开启一下即可,这里就不做介绍了
保存以后,会出现 Project Hooks ,按照图中方式测试一下是否能调通
如图显示 200 说明可以成功回调到 jenkins ,此时 jenkins 上会有新的构建任务被自动启动。
然后我们再测试能否通过打 tag 去触发jenkins,如图所示
new tag后进入打 tag 界面
tag打成功后
查看 jenkins 构建任务是否被触发
至此,持续集成方案的 git + jenkins 这段路就已经铺设完毕。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
下面再来测试一下其他用户创建的项目如何也可以触发到jenkins
先创建一个gitlab用户 rd
登陆到 rd 用户,创建一个项目 ,进入Setting 的 Members 中,给op用户一个可拉取代码的权限
权限选择 reporter 即可
然后到jenkins配置一个属于此项目的工程,请参照博客《git+jenkins+harbor+kubernates可持续集成构建之 —— centos7.7安装配置jenkins》小节 “#4 其他git用户的项目回调jenkins”
jenkins那边配置完后,会得到一个新的回调地址,把它复制到这个新项目的 webhooks 中,token使用上次生成的即可
添加成功后,测试一下
显示 200 说明回调jenkins成功,此时jenkins构建任务中会被自动触发。
查看jenkins可以看到一个新任务被触发了
没问题后,再打个 tag 就会被自动触发到jenkins上了。
gitlab 的配置也就能说这么多了,依据实际情况,做出自己的东西。
如果我为你处理难题,赞一个。 感谢支持!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。