命令记不住

登陆

Gitlab 与 jenkins 结合

Gitlab与jenkins结合

1.构建第一个项目

构建一个自由风格的软件项目
4

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


5


3.立即构建

已经可以看到jenkins获取到gitlab的代码到workspace目录下

[root@git02 freestyle-x86cloud]#ls /var/lib/jenkins/workspace/freestyle-x86cloud/

4.Gitlab自动触发jenkins

在gitlab中添加钩子,自动触发jenkins构建,需要在项目中的配置-构建触发器-高级中设置url和token。


6


点击高级获取token


7


5.登录gitlab项目所在的用户

在此页面中添加jenkins的url和token,并选择哪个分支可以触发。


8


6.将jenkins的构建状态返回到gitlab

点击系统管理-系统设置


9


Gitlab host URL
注意:是host url 所以只填写http://10.0.0.101


10


点击Add添加gitlab的API token


11


到gitlab中拿去API token 个人-设置-Access-token


12


勾选API创建token,然后将API token粘贴到jenkins中保存


13


在jenkins的Credentials中勾选刚刚创建的Gitlab API token


14


进入jenkins项目中设置,增加构建的shell步骤,执行shell脚本
注:shell脚本根据需要创建


15


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


16


推荐阅读