
Gitlab与jenkins结合
1.构建第一个项目
构建一个自由风格的软件项目
2.jenkins从git获取源码
设置免密认证,添加jenkins服务的器key到gitlab的服务器上。
[root@git02 .ssh]#ssh-keygen -t rsa [root@git02 .ssh]#ssh-copy-id -i id_rsa.pub 10.0.0.101 [root@git02 .ssh]#ssh 10.0.0.101 Last login: Wed Jan 9 21:53:24 2019 from 10.0.0.1注:在jenkins中添加git-url以便拉取代码,需要做的是免密认证将jenkins的服务器的ssh-key添加到gitlab服务器中。
配置-源码管理-git
3.立即构建
已经可以看到jenkins获取到gitlab的代码到workspace目录下
[root@git02 freestyle-x86cloud]#ls /var/lib/jenkins/workspace/freestyle-x86cloud/
4.Gitlab自动触发jenkins
在gitlab中添加钩子,自动触发jenkins构建,需要在项目中的配置-构建触发器-高级中设置url和token。
点击高级获取token
5.登录gitlab项目所在的用户
在此页面中添加jenkins的url和token,并选择哪个分支可以触发。
6.将jenkins的构建状态返回到gitlab
点击系统管理-系统设置
Gitlab host URL
注意:是host url 所以只填写http://10.0.0.101
点击Add添加gitlab的API token
到gitlab中拿去API token 个人-设置-Access-token
勾选API创建token,然后将API token粘贴到jenkins中保存
在jenkins的Credentials中勾选刚刚创建的Gitlab API token
进入jenkins项目中设置,增加构建的shell步骤,执行shell脚本
注:shell脚本根据需要创建
7.构建项目的shell脚本
[root@git02 ~]#cat /server/scriptes/deploy.sh #!/usr/bin/sh date=web-$(date +%Y-%m-%d-%H-%S) code_dir="/var/lib/jenkins/workspace/freestyle/" web_ip="10.0.0.50" web_dir="/etc/nginx/web" code_tar(){ cd $code_dir && tar zcf /tmp/$date.tar.gz ./* } code_cp(){ scp /tmp/$date.tar.gz $web_ip:$web_dir } code_xf(){ ssh $web_ip "cd $web_dir && mkdir $date && tar xf $date.tar.gz -C $date " } code_deploy(){ ssh $web_ip "cd $web_dir && rm -fr html && ln -s $date html" } main(){ code_tar; code_cp; code_xf; code_deploy; } main
增加jenkins构建之后成功的状态返回gitlab












