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

2023-11-03

一、介绍

通常是开发后的代码先推到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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

择后自动上传html代码,GitLab + Jenkins + Webhook 实现Push代码后自动更新 的相关文章

随机推荐

  • Golang手动安装包

    在写代码过程中经常需要import github com 官方推荐的为go get github com 下载后可以直接自动安装 但是国内由于墙的原因导致下载失败 在此介绍如何在Linux环境下手动安装go包 以 github com ma
  • [网络工程师]-网络规划与设计-需求分析

    1 建网目标分析 建网目标的分析内容包括最终目标分析和近期目标分析 1 1最终目标分析 最终目标分析内容包括 网络建设到怎样的规模 如何满足用户需求 采用的是否是TCP IP 体系结构是Intranet还是非Intranet 即是否为企业网
  • Oracle19c ORA-00904: “WMSYS“.“WM_CONCAT“: 标识符无效

    错误描述 oracle19c ORA 24344 成功 但出现编译错误 ORA 00904 WMSYS WM CONCAT 标识符无效 解决办法 设置实例 export ORACLE SID test1 首先使用dba账号登录oracle数
  • Java06-MyBatis如何实现多表查询(一对一、一对多)

    前提 总结这个文章的前提是要会基本的SQL语句 我用的MySQL 和JDBC的基本实现 在这个基础上 我们可以通过一些标签或者注解去实现对数据库的多表联查基于一对一和一对多的关系 第二点 我们在制作数据库时一定要考虑不同的表之间的关系 这种
  • openstack装配置 Neutron( 控制节点

    在控制节点 controller 安装 Neutron 服务 同时配置支持 vxlan 1 登录数据库创建 neutron 数据库 MariaDB none gt CREATE DATABASE neutron default charac
  • 【大数据】美团 DB 数据同步到数据仓库的架构与实践

    美团 DB 数据同步到数据仓库的架构与实践 1 背景 2 整体架构 3 Binlog 实时采集 4 离线还原 MySQL 数据 5 Kafka2Hive 6 对 Camus 的二次开发 7 Checkdone 的检测逻辑 8 Merge 9
  • linux下应用开发之按键信号结束线程

    linux应用层经常使用线程 在线程中while循环等待 或者应用中也会有while 那么如果自己写demo或者使用命令行运行 经常用到使用Ctrl C键结束应用 比如main函数中加入signal信号处理 Stop就是信号处理回调函数 主
  • FSA-Net 模型运行——代码调试

    文章目录 一 代码连接 一 代码调试 一 环境配置 二 运行环境 二 参数设置 一 模型训练 二 模型测试 三 demo运行 三 报错汇总 一 代码连接 提示 跑了三天终于把代码跑通了 谢谢各路神仙菩萨 可以先看主要参考博客里大神的博客 讲
  • D3dcompiler_43.dll缺失怎么修复?快速修复方法分享

    D3dcompiler 43 dll缺失怎么修复 在使用Windows系统的过程中 您可能会遇到 D3dcompiler 43 dll缺失 的问题 这个问题通常会导致应用程序无法正常运行 因为它是Direct3D编译器的一部分 而Direc
  • 2020-08-13

    AlertDialog You need to use a Theme AppCompat theme or descendant with this activity 解决方案 将 super context 修改为 super cont
  • kingsoft的服务器信息,Win10系统kingsoft是什么文件夹?可以删除吗?

    在使用Win10系统的过程中 有很多人在盘符里面发现了一个kingsoft文件夹 于是就想问Win10系统kingsoft是什么文件夹 可以删除吗 其实这个问题很简单 但是如果你不知道的话 那就赶紧看看小编整理的以下文章内容吧 Win10系
  • shell脚本实战-while循环语句

    前言 上文我们讨论了for循环的使用 在有限循环里 我们使用for循环是很方便的一件事情 今天我们来探讨下while循环 while循环语句的语法分析 语法格式一 while 条件 do 操作 done 语法格式二 while read l
  • 生成随机小数的函数python_哪个选项是random库中用于生成随机小数的函数?

    其它 一个整数 它加上100后是一个完全平方数 再加上168又是一个完全平方数 试编写代码输出该整数 要求 1 粘贴代码图片 图片需包括行号 代码不可超过6行 争取4行 2 粘贴结果图片 符合条件的整数有四个 单选题 哪个选项不能正确引用t
  • PD16 for Mac(支持M1芯片)v16.3.2(50531)中文版介绍

    PD16虚拟机中文版是mac上最强大也是最好用的虚拟机软件 Parallels Desktop Mac 16 可以显着降低磁盘 内存和CPU使用率 而且针对Windows 10更新进行了优化 更新了超过50个新功能 可以让您更充分地利用你的
  • Out-Of-Vocabulary(OOV)的理解

    OOV 问题是NLP中常见的一个问题 其全称是Out Of Vocabulary 下面简要的说了一下OOV 怎么解决 下面说一下Bert中是怎么解决OOV问题 如果一个单词不在词表中 则按照subword的方式逐个拆分token 如果连逐个
  • 汉字简/繁体转换

  • C语言:删除字符

    本题要求实现一个删除字符串中的指定字符的简单函数 函数接口定义 void delchar char str char c 其中char str是传入的字符串 c是待删除的字符 函数delchar的功能是将字符串str中出现的所有c字符删除
  • 【kernel envirment】config tiny X86 kernel with vfs

    Automatically generated file DO NOT EDIT Linux x86 4 19 0 Kernel Configuration Compiler gcc Ubuntu 7 3 0 27ubuntu1 18 04
  • cocos creator 血条跟随3d convertToUINode导致的问题,使用worldToScreen解决跟随偏离问题

    cocos creator3 3 2 实现血条跟随 一开始使用的camera的converToUINode 也是按照麒麟子大师的博客操作 结果最终的效果 在屏幕中间 血条显示正常 在屏幕边缘就开始出现偏差 x和y都有的偏差 最终也没有解决方
  • 择后自动上传html代码,GitLab + Jenkins + Webhook 实现Push代码后自动更新

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