首页 > 其他分享 >CICD Day2、基于jenkins Gitlab 的CICD web-demo配置

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

时间:2025-01-03 13:23:19浏览次数:1  
标签:web git demo 代码 Gitlab 构建 CICD 分支

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

标签:web,git,demo,代码,Gitlab,构建,CICD,分支
From: https://www.cnblogs.com/suyj/p/18649702

相关文章

  • Web安全攻防入门教程——hvv行动详解
    Web安全攻防入门教程Web安全攻防是指在Web应用程序的开发、部署和运行过程中,保护Web应用免受攻击和恶意行为的技术与策略。这个领域不仅涉及防御措施的实现,还包括通过渗透测试、漏洞挖掘和模拟攻击来识别潜在的安全问题。本教程将带你入门Web安全......
  • Web安全攻防入门教程——hvv行动详解
    Web安全攻防入门教程Web安全攻防是指在Web应用程序的开发、部署和运行过程中,保护Web应用免受攻击和恶意行为的技术与策略。这个领域不仅涉及防御措施的实现,还包括通过渗透测试、漏洞挖掘和模拟攻击来识别潜在的安全问题。本教程将带你入门Web安全攻......
  • Web安全攻防入门教程——hvv行动详解
    Web安全攻防入门教程Web安全攻防是指在Web应用程序的开发、部署和运行过程中,保护Web应用免受攻击和恶意行为的技术与策略。这个领域不仅涉及防御措施的实现,还包括通过渗透测试、漏洞挖掘和模拟攻击来识别潜在的安全问题。本教程将带你入门Web安全攻......
  • 142. Web前端网页案例——【Bootstrap框架家居装饰公司响应式自适应网页(13页)】 大学生
    目录一、网页概述二、网页文件三、网页效果四、代码展示1.html2.CSS3.JS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐♬♬♬欢迎光临我的CSDN!这里是Web前端网页案例大集汇,有各行各业的前端网页案例,每天会持续更新!如果你对Web前端......
  • 大二Web课程设计——张家界旅游网站设计与实现(HTML+CSS+JavaScript)
    ......
  • 零基础想学习 Web 安全,如何入门?
    想学习Web安全,如何入门?一.开始前的思考1.我真的喜欢搞安全吗?2.我想通过安全赚钱钱?3.我不知道做什么就是随便?4.一辈子做安全吗这些不想清楚会对你以后的发展很不利,与其盲目的学习web安全,不如先做一个长远的计划。否则在我看来都是浪费时间。一.首先你得了解......
  • 常见中间件漏洞(tomcat,weblogic,jboss,apache)
    先准备好今天要使用的木马文件使用哥斯拉生成木马压缩成zip文件改名为war后缀一:Tomcat1.1CVE-2017-12615环境搭建cdvulhub-master/tomcat/CVE-2017-12615docker-composeup-d1.首页抓包,修改为PUT方式提交发送shell.jsp和木马内容201创建成功2.......
  • web应用开发技术
    Web应用开发是创建基于Web的应用程序的过程,这些应用程序通过互联网浏览器访问,涉及多个技术层面和环节。以下是关于Web应用开发的详细介绍:前端开发HTML(超文本标记语言):用于创建网页的结构。它通过各种标签来定义页面的元素,如标题、段落、列表、图像等。例如:html我的网页......
  • SpringBootWeb请求响应(day05)
    DispatcherServlet•请求(HttpServletRequest):获取请求数据•响应(HttpServletResponse):设置响应数据HttpServletRequest和 HttpServletResponseServletRequest和HttpServletRequest接口详解-CSDN博客BS架构和CS架构BS架构:Browser/Server,浏览器/服务器架构模式。客户......
  • 在 ASP.NET Core WebAPI如何实现版本控制?
    在ASP.NETCoreWebAPI中实现版本控制(Versioning)是一种常见的做法,用于管理API的演进和兼容性。通过版本控制,我们可以在不破坏现有客户端的情况下引入新功能或修改现有功能。以下是实现版本控制的几种常见方法:1.使用URL路径版本控制将版本号嵌入到URL路径中,例如/api/v......