Jenkins+GitLab

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins+GitLab相关的知识,希望对你有一定的参考价值。

 

思路
 
1、使用jenkins+gitlab,实现git仓库有push时,立即触发jenkins的job,进行构建。
 
2、jenkins和gitlab的安装配置直接参考官方文档
 
3、以下文档仅是抛砖引玉,介绍将jenkins和gitlab打通。
 
 
==========================
GitLab
 
1、Profile->Access Token-:生成token,用于(Jenkins系统设置->系统设置->Gitlab 设置中的Credentials
2、创建新的仓库,打开该仓库页,设置->Webhooks:url中填写jenkins中的对应的job的地址,并添加参数
      如:http://uasername:[email protected]:port/job/222/build?delay=0sec
3、【Add Webhook】保存
4、点击【Test】,提示 “Hook executed successfully: HTTP 201”,且Jenkins中对应的job立即执行构建,在Build History可见。
5、jenkins+gitlab已打通,基础配置完成,在仓库中push后,对应的job可以立即执行构建
6、这仅是jenkins+gitlab的冰山一角,后面的打包、测试、发布、备份等等都能做。
 
 
==========================
Jenkins
 
1、系统设置->管理插件:gitplugin,gitlab plugin,gitlab hook plugin
2、系统设置->Configure Global Security:
技术分享
 
3、系统设置->系统设置->Gitlab:
   
 技术分享
 
4、创建job:
 
(可不添加该步骤)a、源码管理:Git
  Repository URL,仓库地址。如:http://172.168.100.155:9001/root/222.git
       Credentials,添加用户名、密码:使用gitlab的账号密码
 保存
 
b、构建触发器:Build when a change is pushed to GitLab. GitLab CI Service URL: http://172.168.100.155:8080/project/222
   使用默认
 
c、保存job,并尝试手动构建,检查结果。
 
 
 
==========================
遇到的问题
 
==Gitlab
 
问题:gitlab web打开后502
解决:修改端口号
 
#log
tail -f /var/log/gitlab/unicorn/unicorn_stderr.log
 
#修改gitlab端口号
sudo vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb
 
#修改gitlab url
sudo vim /etc/gitlab/gitlab.rb
 
#重载配置
sudo gitlab-ctl reconfigure
 
 
 
==jenkins
#问题:修改用户权限后无法登录
解决:删除config.xml中部分内容,重启jenkins
 
$ cd /var/lib/jenkins,修改config.xml,删除<useSecurity>true</useSecurity>以下,ADN <securityRealm class="hudson.security.LegacySecurityRealm"/>以上的内容。
 
充启jenkins
$ cd /etc/init.d
$ sudo ./jenkins restart
 
 
 
#问题:gitlab中webhooks添加的url在执行配置test时,报错401、403
解决:webhooks的rul中拼接参数,如 http://username:[email protected]:8080/job/222/build?delay=0sec
 
 
#问题:gitlab的仓库中设置webhooks时,运行test报错No valid crumb was included in the request
解决:在jenkins全局安全设置中取消勾选“防止跨站点请求伪造(Prevent Cross Site Request Forgery exploits)”
 
 
[完]

以上是关于Jenkins+GitLab的主要内容,如果未能解决你的问题,请参考以下文章

jenkins 设置 gitlab web hooks

持续集成 目录

Jenkins系列之——前言 Jenkins初识

Jenkins系列之——前言 Jenkins初识

[Jenkins01] Jenkins的安装和部署(jenkins教程)

一个jenkins远程操作另一个jenkins进行构建