择后自动上传html代码,GitLab + Jenkins + Webhook 实现Push代码后自动更新

一、介绍

通常是开发后的代码先推到Gitlab上管理,然后在Jenkins里通过脚本构建代码发布。这种方式每次在发版的时候,需要人工去执行jenkins上的构建动作,有时显得过于繁琐。

Gitlab的Webhook功能,通过Webhook的相关设置,可以实现代码Push后,自动去触发jenkins上的构建动作,这样就不需要人工干预去执行操作了。

二、环境信息

主机名

IP地址

功能

GitLab

172.20.6.11

GitLab-ce 8.8.0

Jenkins

172.20.6.12

Jenkins 2.150.1

Web

172.20.2.10

Nginx

三、环境搭建

1. Jenkins部署

On 172.20.6.12

导入 yum 源

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

安装及启动服务

yum install jenkins

systemctl start jenkins

systemctl status jenkins

5223f80add71ee09b11d50551f61619f.png

web访问

23ac93a7b66e0a5813f99884e073b91b.png

2. GitLab本地化部署

On 172.20.6.11

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-8.8.0-ce.0.el7.x86_64.rpm

rpm -i gitlab-ce-8.8.0-ce.0.el7.x86_64.rpm

vim /etc/gitlab/gitlab.rb

external_url 'http://172.20.6.11'

gitlab-ctl reconfigure

web访问

b21af055efd1e191ac41450c15002dfe.png

3.在GitLab新建项目,并上传代码

c0f20d116d92e7fdc4036640bd4ee24a.png

e3e216c9fd5debdaba38f71bc3794b3f.png

4.配置 Jenkins

a.安装插件

登录 Jenkins 后台,依次点击“系统管理”-“插件管理”-“Avaliable”

必须安装的插件如下:

GitLab Plugin

Publish Over SSH

b.配置 web 机器

登录 Jenkins 后台,依次点击“系统管理”-“系统设置”

只有 Publish over SSH插件安装成功,即出现下方配置项,填写 web  的服务器信息即可

01d097b506f9bd1299ca3cbb7b0092ab.png

c.新建构建任务

通用部分配置

设置工作空间目录为:/data,并修改目录权限为 jenkins

[root@jenkins /]# ll -d /data/

drwxr-xr-x. 7 jenkins jenkins 111 Jan 2 10:52 /data/

cea8cab3a68e19fdabb1e125f819cdcc.png

d.源代码配置

在 Jenkins 服务器上:

ssh-keygen -t rsa -C "jenkins"

# 一路回车, 默认路径和文件名, 不要密码

在gitlab的项目下, 点击右侧配置菜单 -> Deploy Keys, 用刚才创建的 id_rsa_tho.pub 的内容, 创建一个key, 名称为 Readonly Key for Jenkins, 如果有多个项目都需要这个私钥, 则在每个项目的deploy keys下enable这个key即可。

a35cf80964ab101c4d625ce54fa92935.png

选择 Git, 填入gitlab中给的项目地址, 在下面add new credential,

Username: git,

Private Key Enter Directly, 输入刚才创建的 id_rsa 的内容, 注意这个是私钥

9a5c0253fb2c6d6a9d6a241edab778a7.png

0883b509001aba834895c0a16f530894.png

e.构建触发器配置(Build Triggers)

只有 GitLab 插件安装成功,此处会显示该项,后面提供的 URL 地址即为 webhook 的地址

a52abc4e943c19c9017474ddf74298c2.png

f.构建环境(Build Environment)

选择 步骤2 中添加的 web 机器,保存即可

54ad9927cebf65f2dc2c24e3f2a8c0a8.png

四、配置 webhook

进入 GitLab,项目,编辑项目,选择”Webhooks”

gitlab 的 webhooks url 是根据 jenkins 构建权限连接设置的,如果必须登录才能构建就必须获取 jenkins 的用户名及 token,可以在 jenkins 用户-设置里面查看到 ,url格式:

http://:@/

所以,如果你出现如下错误提示:

b4190834cb7e818f0e66985cd2bdba07.png

1b7f0a21bdf498883355152d6f6c82a8.png

点击 Test,出现以下即表示已经成功

eff17cb39f12f918016b5d7946bedf7e.png

五、测试

1、当前页面内容

46b0038a0f0e62d5cb8887c6299e088b.png

2、本地 Pycharm 编写修改 html 代码,并 push

Title

测试代码-V2

3、查看 Jenkins

86cd2ba12e6269815bd8d9aab5f3e64c.png

946f53a0b0664a0f30ffa125949960ba.png

4、查看网站

c9097247458ccde421abab180c3441fb.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值