天下風雲出我輩
一入江湖歲月催

Gitlab+Jenkins自动化发布

GitLab+Jenkins结合使用,当开发人员push代码到gitlab的时候触发webhook到Jenkins然后执行任务。

系统环境:

GitLab:192.168.1.235

Jenkins:192.168.1.230

Nginx:192.168.1.234

1、GitLab+Jenkins安装

gitlab安装配置

Jenkins安装

 

2、GitLab创建项目

在gitlab上创建一个项目

git的开发机与gitlab作ssh互信(开发机的公钥需要上传到gitlab用户的SSH配置中),并测试pull是否成功

#克隆项目并测试提交

$ git clone [email protected]:test/jenkins-test.git

$ git config --global user.email "[email protected]"
$ git config --global user.name "host1"

echo "upload to the gitlab of test >>>>>>" > index.html
git add .
git commit -m "add index.html"
git push

#查看GitLab上是否上传成功

 

3、配置Jenkins

3.1 安装插件:
Git plugin 、Gitlab Plugin、Gitlab Hook Plugin #gitlab相关插件
Publish Over SSH      # scp拷贝插件 (主要是将包拷贝到web服务器上)
Build Token Trigger、Build Authorization Token Root  # 钩子触发器

安装完之后重启Jenkins

添加要通过SSH部署代码的主机:192.168.1.234

先在Jenkins主机上配置免密登录远程代码部署主机,然后在Jenkins的web界面设置:系统管理 —->系统设置 —>找到Publish over SSH,填写自身私钥以及远程主机的信息。

 

3.2 新建一个项目开始配置构建

选择git源码管理,填写gitlab仓库地址并添加连接用户

Jenkins使用SSH免密连接GitLab,填写GitLab的用户账号及Jenkins自身的私钥,公钥放GitLab的SSH配置中。

生成令牌

[[email protected] ~]# openssl rand -hex 10
5812fd24728cab42e1d3

构建触发器:填写生成的令牌,GitLab触发webhook的url:http://192.168.1.230:8080/project/jenkins-test/build?token=5812fd24728cab42e1d3

构建中找到send files or execute commands over SSH,填写部署代码主机的信息。

 

4、配置GitLab

配置webhook,当有代码提交时自动触发Jenkins的部署操作;在项目—>设置—>集成中

测试一下webhook执行是否正常。返回HTTP 200说明正常,注意如果设置触发的url是本地局域网,则需要到管理中心—>设置—>网络—>外发请求,勾选允许向本地网络发送请求。

如果报错,设置下Jenkins的全局安全配置

5、测试提交代码是否自动部署到远程主机

echo "is ok ,test jenkins auto deploy >>>>>> >>>>>>" > index.html
git add .
git commit -m "update index.html"
git push

 

访问部署机查看

 

赞(3) 打赏
未经允许不得转载:Anonym0x1 » Gitlab+Jenkins自动化发布

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏