问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Gitlab+Jenkins通过钩子实现自动部署web项目,图文详细教程

发布网友 发布时间:2022-08-23 23:03

我来回答

1个回答

热心网友 时间:2023-01-21 22:43

扩展参考:Jenkins+Gitlab通过脚本自动部署回滚web项目至集群

1):Gitlab服务器:ubuntu 192.168.152.131 ---参考搭建:Linux安装gitlab,docker安装gitlab教程

2):Jenkins服务器:ubunu 192.168.152.130 ---参考搭建:linux安装Jenkins,或docker安装Jenkins教程

在服务器上生成ssh-keygen,用于配置web服务器和Gitlab服务器。

3):web服务器:centos 192.168.152.150 ---已搭建好LNMP环境

4):开发者电脑:Windows+key密钥 (用于提交代码)

1:在gitlab创建项目Test Project

2.1): 配置一个开发者电脑的ssh公钥到gitlab

配置一个开发者电脑的ssh公钥到gitlab,这样才能模拟开发上传代码到gitlab。

windows生成key过程及git安装,可参考:Windows下git和github的使用图文详细教程_the丶only的博客-CSDN博客_github win

在windows测试clone,和提交代码。


注:最新版git 已经将默认分支master改为main了。所以看到main,而不是master不要太奇怪

测试成功,在gitlab也显示有index.html文件。

2.2): 配置jenkins公钥到gitlab

同理,同样需要jenkins公钥,因为jenkins也需要拉去gitlab的代码。

jenkins服务器 上查看公钥并复制添加到gitlab,并命名为jekins。

1:插件管理,安装插件

jenkins本身没什么功能,主要是依靠插件来实现各种强大的功能。

基本需要添加的插件:Gitlab Hook、Build Authorization Token Root、Publish Over SSH、Gitlab Authentication、Gitlab、Git Parameter

可以在 Manage Jenkins >> Manage Plugins 查看管理插件。在Available 选项搜索安装插件即可。

安装完成后,重启Jenkins。

2:添加需要部署的web主机

在 Manage Jenkins >> Configure System 中往下翻,找到 Publish over SSH 选项,点击add ssh server。

在Jenkins服务器上,查看私钥,注,是私钥,不是公钥。

将私钥填写在key位置,还有添加web服务器相关信息。

注:如果测试报错如下

Failed to connect or change directory
jenkins.plugins.publish_over.BapPublisherException: Failed to add SSH key. Message [invalid privatekey: [B@2e54414f]

是因为默认用ssh-keygen命令,默认生成了OPENSSH 格式密钥。而Jenkins暂时不支持这种私钥,私钥开头结尾如下:

所以,需要生成rsa密钥格式的。用开头说的ssh-keygen加其他参数生成即可。

私钥开头结尾如下:

再次测试,显示success,则成功。然后点击save保存即可。

3:构建任务项目

首页创建任务或者一个项目

命名为web-project,选择为freestyle project 自由项目。然后ok确认。

3.1):源码管理 Source Code Management

选择源码管理,添加gitlab的项目clone地址。

注:最后路径选择分支,我gitlab主分支名字为main,如果是master,则写master,或者合并的其他分支。

在add添加用户

添加完成后,选择git用户,这时没有红色提醒,说明已成功连接

3.2):构建触发器 Build Triggers

现在Build Triggers,勾选build when....,其他默认,并记下链接 http://192.168.152.130:8080/project/web-project

点击高级 advance 选项。

勾选filter branches regex选择,填写分支,生产token。其他默认

3.3):构建 Build

选择Build 选项。选择ssh

添加web服务器

添加完毕,最后save保存。

1:添加钩子webhooks.

选择自己的项目Test Project,在设置setting里,选择钩子webhooks.

填写刚才记下的http://192.168.152.130:8080/project/web-project和token值。

最后Add webhook完成:

2:如添加失败,报错,更改Network

注:如填写失败提示Url is blocked: Requests to the local network are not allowed

还需更改Network选项。

3:测试钩子

添加完成后,下面会出现钩子选择。点击test中的,push event。

出现successful,即添加成功。

在Jenkins也可以看到刚才的测试时间信息。

在开发电脑上测试提交,我这里为Windows电脑测试。

打开Git Bash,输入以下命令:

提交成功,回到Jenkins,查看是否构建成功:

绿色显示构建成功,无错误显示。回到gitlab查看项目。

时间显示刚才也提交成功,无错误。最后在浏览器输入web地址测试,本人配置了web访问端口8082。所以输入IP加端口访问。

内容也已经自动更新成功。

完结撒花!!!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
把身份证和3000元给教练了,同时他也带我去体检入指纹了!之后没给我 从中国农业大学东校区到北京植物园 有没有人看过小石头小豆子版的<<霸王别姬>>? 我买的iphone4s显示可能是官翻机是不是正品行货? 怎样能看出我新买的iPhone 4S的真伪、。还有我想知道这款手机有没有被... 水货iphone4s想知道是不是假的我看分辨率不像假的但还是不确定哪位好心... 请帮鉴定下这部iphone 4S是真的不? 前段时间老公跟别人发过520.5920.我怀疑老公出轨对我不忠,这么长时间过 ... ...下是不是翻新机,谢谢了。型号md239ch 序例号c3kj920mdtd2 imei... ...给教练帮我报名了因家里情况现在不想去了该怎么办呢?我身份证... 土生,大小像山药豆,豆豆上面长了许多小须子,可以吃,口感甘甜,我想知道... 联想s720主题下载完怎么应用? 联想自带的IDEALIFE软件有什么用 联想生活怎么下载 怎么判断化妆品有激素 梦见驴驮柴落清水河是什么意思? 1梦见毛驴驮两大桶水会发大财吗? 梦见下沟驮水 口罩厂开始上班的时候说280一天,结账了却只给160一天怎么办? 珠光布的简介 珠光剂的介绍 涉黄可以保释吗 卖淫拘留可以保释出来吗 涉黄怎么判刑可以取保候审吗 涉黄拘留还能保释吗 涉黄治安拘留可以保释吗 涉黄被拘留是否可以保释 因涉黄被拘留可以保释吗 因涉黄被拘留可以保释吗? 茶兀的读音是什么? 现在装宽带都要录电信诈骗视频吗 如何制作电信诈骗视频开头 陈琴堵截电信诈骗视频扬州台关注 路某孙某电信诈骗视频 梦见火灾是什么兆头 民事案件,有两个原告,其中一个原告在庭前撤诉,不用单独写撤诉裁定书... 一起案子有两个原告,如果大原告撤诉了,是不是就不追究法律责任了_百 ... 其中一个原告撤诉遭到另一个原告阻挡怎么办? 共同原告一人撤诉 两人同时被一人起诉,另外一人被撤诉另外一个人是不是也同时会撤诉? 谁能帮我给“老人与海”这本书写一首诗 老人与海诗集 老人与海是谁写的 变形记是谁写的 但丁写了什么 用两句古诗表现出老人与海中老人坚强斗争的态度 请你用两句古诗表现老人与海中老人坚强勇敢的斗争态度 鉴赏《老人与海》和《祝福》-鲁迅 临汾房子现在分期付款首付是多少呢? 二套房首付比例下降,对未来房价有什么影响 世界上最大的恐龙博物馆在哪 初中化学 纯净物和混合物