CICD Day2、基于jenkins Gitlab 的CICD web-demo配置

news/2025/1/7 11:04:20/文章来源:https://www.cnblogs.com/suyj/p/18649702

1、 代码提交

1.1 在服务器上创建一个web-demo的目录,用户web前端项目的开发目录

mkdir web-demo
# 在web-demo目录下 编辑一个index.html的文件
cat index.html
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>实例</title>
</head>
<body><h1>Hello k8s!</h1>
</body>
</html>

1.2 在Gitlab上位web前端项目创建一个仓库

Gitlab首页-》新建项目/仓库-》创建空白项目,在页面上输入项目名称,项目url以及选择关联的用户,其他选项保持默认即可
image
image

  • 默认存在一个main的分支,在GitHub之前版本,这个默认分支被命名为master
  • 在软件开发过程中,通常会基于分支来进行版本管理,这意味着每一个代码仓库中会存在多个分支,每个分支都有特定的用途和职责,以下是几种常见的分支类型
    • 主分支(main-branch):主分支通常被视为项目中的主要代码线,经过严格的测试和验证,符合生产环境的标准,既用户使用的代码版本
    • 开发分支(develop-branch):用于开发人员日常功能开发、修复和测试的代码版本
    • 发布分支(Release-branch):准备上线的代码版本。在准备上线前,开发人员会基于开发分支创建一个发布分支,在这个分支上进行全面测试,一旦测试通过就将其合并到主分支上

1.3 使用git将本地代码提交到GitHub上

# 进入到项目目录
cd /root/web-demo
# 初始化一个git仓库
git init
# 将所有文件添加到暂存区中
git add .
# 将所有文件提交到本地仓库中
git config user.name "suyajun"
git config user.email "suyajun"
git commit -m 'Initial commit'
# 关联远程仓库
git remote add origin http://172.16.99.82:88/root/web-demo.git
# 创建并切换到dev分支
git checkout -b dev
# 推送dev分支到远程仓库中
[root@cicd-82 web-demo]# git push origin dev
Username for 'http://172.16.99.82:88': root
Password for 'http://root@172.16.99.82:88':
Counting objects: 3, done.
Delta compression using up to 6 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 303 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote:
remote: To create a merge request for dev, visit:
remote:   http://172.16.99.82/root/web-demo/-/merge_requests/new?merge_request%5Bsource_branch%5D=dev
remote:
To http://172.16.99.82:88/root/web-demo.git* [new branch]      dev -> dev
  • 代码提交成功后,在GitHub项目页面左上角选择dev分支,将看到该分支的代码文件
    image
    image

image

2 jenkins 创建项目

2.1 在jenkins上创建一个item(项目),为web前端项目配置CI/CD流程。

image

image

  • 这里选择Freestyle project,这是一种经典的自由风格项目类型,具有高度的灵活性,可自定义构建过程、构建环境以及后续操作等
    image

  • General:项目的基本设置,如项目名称、描述、参数化构建选项、并发构建数等

  • 源码管理(Source Code Management):代码仓库的配置,如URL、分支、认证等信息

  • 构建触发器(Build Triggers):表示在什么条件下自动构建项目,用户可以选择定时构建、代码提交触发构建、其他项目构建成功触发构建等

  • Environment:这个是Jenkins:2.491新加的功能

  • 构建步骤(Build Steps):配置实际的构建过程,用户可以添加多个构建步骤,每个步骤代表一个操作,该操作可以是代码编译、单元测试等。构建步骤是项目的核心,它定义了实际的构建流程

  • 构建后操作(Post-build Actions):在构建完成后执行的操作,用户可以添加多个操作,这些操作可以是发送通知、部署到服务器、触发其他项目等

2.2 项目配置

2.2.1 配置源代码管理(Source Code Management)

源码管理页面显示None或者无,因为该功能需要Git插件的支持,我们需要额外安装插件:Manage Jenkins》Plugins》Available plugins》》搜索关键字Git,选中Git,点击Install without restart按钮进行安装

  • 安装完成后,可以看到与Git相关的配置选项
    image
  • Repository URL:指定代码仓库地址。这里输入http://172.16.99.82:88/root/web-demo.git
  • Credentials:选择访问代码仓库的凭据。上述代码中仓库是私有的,既下载和上传代码都需要用户认证。点击下方的Add添加凭据,选择Jenkins,添加以下字段:
    • Username:用户名,这里输入root
    • Password:密码,这里输入Gitlab root用户的密码
    • Description:凭据描述,输入Gitlab-auth
  • Branches to build:指定构建的代码分支,这里输入*/dev

2.2 配置构建触发器(Triggers)

在Triggers 部分选择 Poll SCM,以定期轮询检查代码仓库中是否有新的提交。如果有,则自动触发构建。
每分钟执行一次检查,在Schedule字段中输入 Cron 表达式,如下图所示

image

2.3 配置构建步骤(Build Steps)

构建步骤的主要任务是将获取的代码文件推送到web服务器上并将其部署到网站程序的根目录中。这类需求可以使用scp、rsync等工具来实现 ,在Execute shell中定义具体的命令。这类需求还可以使用 Publish Over SSH插件来实现,并支持在目标服务器上执行shell脚本。该插件需要额外进行安装:Manage Jenkins》plugins》Available Pulgins》搜索关键字Publish Over SSH,选中Publish Over SSH 点击Install 进行安装

  • 安装完成后,首先添加目标服务器:Manage Jenkins》System》Publish Over SSH,点击Add按钮添加服务器,配置如下:
    • Name:服务器名称,可自定义,如web-server
    • Hostname:主机名或IP地址
    • Username:登录服务器的用户名
    • Remote Directory:远程目录,这里设置为/tmp
    • Advanced:点击此按钮。设置用户名对应的密码或者秘钥
      配置完成后,可以点击Test Configuration按钮验证SSH连接是否成功,点击Save按钮保存配置

然后,在构建步骤部分选择Send files or execute commands over SSH,配置如下:

  • Name:选择更添加的目标服务器
  • Transfer Set Source files:指定传输文件的源路径,可以使用通配符来匹配多个文件。这里输入**/* 表示传输当前目录(代码目录)下的所有文件和目录
  • Remove prefix:如果在Transfer Set Source files设置的源路径中包含路径信息,可以在这里指定移除路径的前缀
  • Remote directory:远程目录。这个目录会与添加目标服务器那里的“Remote directory”目录进行拼接。例如,这里设置为web-demo,那么将传输到目标服务器的/tmp/web-demo目录中
  • Exec command:传输完成后,在远程服务器上执行的命令。这里主要实现将/tmp/web-demo目录代码移动到网站程序的根目录/usr/share/nginx/html中
  • Build Steps配置如下所示

image

2.4 验证与测试

项目配置完成后,手动执行一次构建以验证整个自动化流程。
点击项目名称web-demo,选择Build Now,开始执行构建流程。在项目的左下角会生成一个构建编号,从1开始递增,单机构建编号,选择Console Output以查看控制台输出,以确认每个步骤是否正常执行。如下图所示
image
在上述控制台输出中,显示了整个构建的过程。首先表明当前构建的工作空间(Building in workspace /var/jenkins_home/workspace/web-demo),既源代码所在目录,下面的所有操作都将在这个目录下进行。接着,将dev分支代码从代码仓库下载到当前目录中。然后,通过ssh将当面目录下文件(源代码)传输到目标服务器web-server上并执行命令
image

通过浏览器访问web服务器,将看到网站首页,内容为 Hello K8s

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/863349.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CPU-Z处理器检测工具 v2.13.0中文绿色单文件

点击上方蓝字关注我 前言 CPU-Z是一个非常厉害的CPU检测小帮手。它能识别很多种类的CPU,而且打开和检测的速度都很快。这个工具能清楚地告诉我们关于CPU、主板、内存、显卡等硬件的详细信息,比如是哪个厂家生产的、处理器的名字、是怎么做出来的、封装技术怎么样,还有它们的…

uniapp(Hbuilderx)

目录微信开发者工具下载新建项目运行 微信开发者工具下载新建项目注意点 如果要打包安卓,需要勾上:运行微信小程序 1: 找到.exe路径,粘贴进去2:打开微信小程序“服务端口”

商品个性化推荐

商品个性化推荐 任务要求:二.原理讲解: 本项目的基于 用户的购买历史 和 商品之间的相似性 进行商品推荐。它主要包括两个核心部分:用户-商品矩阵 和 商品相似度计算。下面我会结合算法的原理和实际示例为你讲解这个推荐系统的工作原理。 2.1用户-商品矩阵(User-Product M…

探索新路径:金融行业如何借助内部知识库实现智能转型

引言 在数字化转型的浪潮中,金融行业正经历着前所未有的变革。随着大数据、人工智能等技术的飞速发展,金融机构不仅需要提升服务效率,更要优化内部管理,以创新驱动业务增长。内部知识库作为信息管理与知识分享的核心平台,正逐渐成为金融行业智能转型的关键驱动力。本文将探…

Listary 6.3.1.85 Windows文件管理:高效文件管理工具

点击上方蓝字关注我 前言 Listary是一个非常实用的Windows文件管理小帮手,它能让找文件和管理文件变得更快更容易。用了它,你可以更快地搜索到想要的文件或程序,还能通过一些快捷操作快速到达文件所在的位置。更重要的是,Listary能和Windows自带的文件管理器以及其他常用的…

断点输出大法快速定位编程错误

断点&输出大法快速定位编程错误 1、断点法 点红框位置就可以加每行代码的断点 再按F5进行debug断点&输出大法快速定位编程错误 1、断点法 点红框位置就可以加每行代码的断点再按F5进行debug操作,在下面的窗口看各函数的值 这种方法经常用在循环出现问题时进行处理 举个…

Nginx的referer参数的用法和原理

​ Nginx的referer参数是用于控制HTTP请求中的Referer字段的相关配置。这个参数的主要作用是限制或允许特定来源网站的访问,以加强安全性或控制流量。 用法:限制特定来源网站的访问: 可以使用referer参数来配置Nginx,使其只允许来自指定来源网站的请求。这有助于防止盗链或…

.Net程序员机会来了,微软官方新推出一个面向Windows开发者本地运行AI模型的开源工具

想要开发AI产品的.Net程序员机会来了,这个项目应该好好研究。 虽然说大模型基本都有提供网络API,但肯定没有直接使用本地模型速度快。 最近微软官方新推出AI Dev Gallery开源项目,可以帮助Windows开发人员学习如何将具有本地模型和API的AI添加到Windows应用程序中。01 项目简…

ABB工业机器人SIB-V板维修细节分享

要判断ABB机器人SIB-v板是否需要更换,可以从以下几个方面进行评估: - 检查SIB-v板的状态:查看SIB-v板是否有明显的物理损坏,如烧焦、裂纹或其他损坏迹象。 - 检查连接情况:确保SIB-v板与其他组件的连接牢固,没有松动或腐蚀。 - 检查电池状态:如果SIB-v板上有…

KUKA机械臂驱动器600-20 1X64 UL故障维修细节

库卡机器人作为工业自动化的重要设备,其稳定性和可靠性对于生产线的正常运转至关重要。然而,在使用过程中,KUKA机械臂驱动器故障是不可避免的问题之一。 一、常见KUKA机械手驱动器故障及原因分析 1. 过热故障 过热是常见的库卡工业机器人驱动器600-20 1X64 UL故障之一。这通…

PostgreSQL技术大讲堂 - 第77讲:DB4AI 搭建PG向量数据库AI机器人

PostgreSQL技术大讲堂 - 第77讲,主题:DB4AI 搭建PG向量数据库AI机器人 讲课内容: 1、 向量搜索引擎(PGVector)介绍 2、 向量与Embeddings的定义 3、 向量间的相似度计算方法演示 4、检索增强生成模型(RAG)介绍 5、PG向量数据库+通义千问大模型实现AI机器人 目前主流的关系型…

ABAP excel上传时,数字带文本逗号 转ABAP数量QUAN金额CURR 格式

主要使用 函数MOVE_CHAR_TO_NUM 或者 UNITS_STRING_CONVERT 第二个需要限制客户SU3 参数配置X 或者函数入参默认X, excel导出默认时X格式, 样例参考代码*&---------------------------------------------------------------------* *& Report YWWZ_TEST57 *&…