Gitlab+Jenkins实现自动部署


系统环境:

  • Gitlab主机
    • IP:192.168.1.2
  • Jenkins主机
    • IP:192.168.1.3

一、为何要做自动部署

 #为什么要做自动部署,因为懒啊!!! #部署Tomcat的在这里:https://blog.51cto.com/bigboss/2155423 

二、配置Gitlab

 #首先,你得有一个代码仓库,赶紧到gitlab上创建一个,然后创建个分支并创建一个文件。 

Gitlab+Jenkins实现自动部署
Gitlab+Jenkins实现自动部署
Gitlab+Jenkins实现自动部署

 #其次,你得配置一个ssh公钥到gitlab上,这样才能模拟开发上传代码到gitlab。 #至于ssh公钥私钥怎么生成,自己百度去。 

Gitlab+Jenkins实现自动部署
Gitlab+Jenkins实现自动部署


#克隆代码仓库,然后测试是否能够上传代码到gitlab git clone git@192.168.1.2:root/test.git cd test/ echo 11111 > 1.txt git add . git commit -m "add 1.txt" git push 

Gitlab+Jenkins实现自动部署


三、配置Jenkins

#打开jenkins页面 #添加插件:系统管理 - 插件管理 #需要添加的插件:Gitlab Hook、Build Authorization Token Root、Publish Over SSH、Gitlab Authentication、Gitlab、Git Parameter  #添加完插件重启jenkins,开始添加要部署代码的主机,注意一定是要能够ssh登陆的用户。 #添加主机:系统管理 - 系统设置 找到Publish over SSH 

Gitlab+Jenkins实现自动部署

 #添加完主机之后,新建一个项目,开始配置构建操作 

Gitlab+Jenkins实现自动部署
Gitlab+Jenkins实现自动部署
Gitlab+Jenkins实现自动部署
Gitlab+Jenkins实现自动部署
Gitlab+Jenkins实现自动部署
Gitlab+Jenkins实现自动部署
Gitlab+Jenkins实现自动部署

 #配置gitlab,当有代码提交时,触发jenkins的部署操作 

Gitlab+Jenkins实现自动部署
Gitlab+Jenkins实现自动部署
Gitlab+Jenkins实现自动部署
Gitlab+Jenkins实现自动部署


四、测试提交代码是否会部署到远程主机


#再次克隆仓库 git clone git@192.168.1.2:root/test.git cd test/ echo '测试Jenkins' > index.html git add . git commit -m 'add index.html' git push #提交之后去jenkins页面看看 

Gitlab+Jenkins实现自动部署
Gitlab+Jenkins实现自动部署
Gitlab+Jenkins实现自动部署
Gitlab+Jenkins实现自动部署
Gitlab+Jenkins实现自动部署


小坑:

    • 错误提示:

      #很多朋友使用最新版本的gitlab做自动部署时,在增加web钩子那一步, #点击test push events时会报错:Url is blocked: Requests to the local network are not allowed

      Gitlab+Jenkins实现自动部署

    • 解决方法:
      #这是因为新版的gitlab为了安全默认禁止了本地局域网地址调用web hook #我们在设置里允许就行,具体步骤如下:

      Gitlab+Jenkins实现自动部署
      Gitlab+Jenkins实现自动部署

  • 原文链接:https://blog.51cto.com/bigboss/2129477
  • 其他参考:https://www.cnblogs.com/bugsbunny/p/7919993.html
  • 其他参考:https://rorschachchan.github.io/2018/05/25/Gitlab-Jenkins%E6%90%AD%E5%BB%BA%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90%E7%B3%BB%E7%BB%9F/

 

一些坑

1.本文都是gitlab、jenkins地址都是IP地址,如果测试时候自己用了域名,记得凡是用到的主机都要修改hosts文件,不然会报错,本地git clone不了,地址错误,或者凭据无法登陆主机等

2.自己测试时候,照文中安装了Gitlab、Gitlab Hook、Build Authorization Token Root等插件,但是jenkins新建item时候,到了“构建触发器”选项没有Build when a change is pushed to GitLab,重装了一次jenkins和插件,才有这个选项


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM