gitlab + jenkins 自动部署

Posted gh-123

tags:

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

一。安装gitlab 和 jenkins

直接克隆项目

git clone git@gitee.com:GH16/devops.git

进入项目,直接运行, 等待五分钟左右部署(显示出错也会重启继续初始化)

?  ~ cd devops 
?  devops git:(master) ls
README.en.md       docker-compose.yml jenkins            stop.sh
README.md          gitlab             start.sh
?  devops git:(master) bash start.sh 

浏览器输入 http://127.0.0.1:10080 先创建root用户的密码

技术图片

登陆成功后 settings->preferences->language 可设置中文,接着配置ssh密钥

技术图片

 配置完ssh密钥后,创建项目

技术图片

 创建成功后克隆项目

技术图片

?  ~ git clone ssh://git@localhost:10022/root/test_gitlab.git

进入项目,修改文件

?  ~ cd test_gitlab 
?  test_gitlab git:(master) ls           
README.md
?  test_gitlab git:(master) cat README.md 
# test_gitlab

?  test_gitlab git:(master) echo 1 > README.md 
?  test_gitlab git:(master) ? cat README.md 
1
?  test_gitlab git:(master) ? 

提交测试是否成功

?  test_gitlab git:(master) ? git commit -am 1
?  test_gitlab git:(master) git push

gitlab上查看,已经提交成功

技术图片

 然后浏览器输入 http://127.0.0.1:18080 ,用户 admin , 秘密 12345678 登陆(可自行更改),创建任务

技术图片

 选择 自由风格 项目,然后创建

技术图片

 接着源码选 git , Repository URL 为需要部署的项目地址,这里输入http://gitlab/root/test_gitlab.git (这里需要输入容器内部的地址)

 Credentials 点击添加,可以选择gitlab的用户和密码,也能用ssh等,然后点击添加的左边选择刚刚添加的用户  

技术图片

 接着 构建触发器 ,选 Build when a change is pushed to GitLab ,里面的其他选项可以不动,Secret token 里点击Generate生成 , 然后保存 技术图片

 接着点击jenkins的设置->全局设置,找到 gitlab 的设置

技术图片

 Connection name 链接名称随便填

Gitlab host URL 需要填gitlab的主机地址,就是访问gitlab的地址,这里输入 http://gitlab (容器里面的地址)

Credentials 同上面一样点击添加,此时类型需要选择gitlab API token

然后到gitlab,点击设置

技术图片

然后访问令牌

 技术图片

创建一个 api 的令牌

 技术图片

复制这个令牌

 技术图片

回到 jenkins 的添加,API token 就输入上面的令牌,点击添加

 技术图片

接着点击添加的左边,选择刚刚创建的API,然后点击下方的 test connection, 测试连接成功,然后点击保存。

技术图片

  到gitlab点击管理中心,顶部最右边

技术图片

接着点击系统钩子

技术图片

 URL里输入 jenkins 里 构建触发器的地址,即 http://jenkins:8080/project/test_jenkins

技术图片

 Secret Token 里输入 jenkins 里构建触发器的Secret token,即 e1135d5424f80e82ceccbb962028a11a

技术图片

  然后选择push events, 最后点击添加钩子

技术图片

 最后测试是否成功,在test_gitlab里修改文件添加

?  test_gitlab git:(master) ls
README.md
?  test_gitlab git:(master) cat README.md 
1
?  test_gitlab git:(master) echo 2 > README.md 
?  test_gitlab git:(master) ? cat README.md 
2
?  test_gitlab git:(master) ? git commit -am 2       
?  test_gitlab git:(master) git push

查看jenkins已经自动构建完成 

技术图片

 进入test_jenkins项目,点击工作区

技术图片

gitlab里的代码就自动同步到这个文件夹了 

技术图片

接着就是部署web服务器的路径指到这个文件夹,或者做其他的处理。

ctrl + c 取消 start.sh ,接着停止容器

^CGracefully stopping... (press Ctrl+C again to force)
Killing devops_gitlab_1             ... done
Killing devops_jenkins_1            ... done
Killing devops_gitlab-postgresql_1  ... done
Killing devops_gitlab-redis_1       ... done
?  devops git:(master) ? bash stop.sh 
Removing devops_gitlab_1            ... done
Removing devops_jenkins_1           ... done
Removing devops_gitlab-postgresql_1 ... done
Removing devops_gitlab-redis_1      ... done
Removing network devops_default
?  devops git:(master) ? 

 

 

 

 

 

 

以上是关于gitlab + jenkins 自动部署的主要内容,如果未能解决你的问题,请参考以下文章

gitlab+jenkins自动化部署

gitlab+jenkins自动化上线部署持续集成

Gitlab+Jenkins实现自动部署

jenkins+docker+gitlab自动化部署

jenkins结合gitlab实现pipline的自动构建部署

持续集成+自动化部署[代码流水线管理及Jenkins和gitlab集成]