松原手机网站开发,网站建设与制作 试卷与答案,海口省建设厅网站,网站建设验收模板一、CI/CD
1、CI/CD 概念#xff1a;
CI/CD 是一种软件开发和交付方法#xff0c;旨在加速应用程序的开发、测试和部署过程#xff0c;以提高软件交付的质量和效率。
(1) 持续集成 (CI Continuous Integration):
持续集成是开发团队频繁集成其代码更改的过程。开发者将其…一、CI/CD
1、CI/CD 概念
CI/CD 是一种软件开发和交付方法旨在加速应用程序的开发、测试和部署过程以提高软件交付的质量和效率。
(1) 持续集成 (CI Continuous Integration):
持续集成是开发团队频繁集成其代码更改的过程。开发者将其代码合并到共享代码库如Git仓库后CI工具例如Jenkins、Travis CI、CircleCI等将自动构建、测试和部署应用程序。代码合并、构建、部署、测试在一起不断执行并对结构反馈
(2) 持续交付 (CD Continuous Deployment)
持续交付是一种将应用程序的构建版本自动部署到测试环境的实践。在持续交付流程中每次通过CI测试的代码变更都可以自动部署到一个测试环境使团队能够快速验证新功能、修复和改进。把代码部署到测试环境
(3) 持续部署 (CD Continuous Delivery)
将通过 CI 生成的新代码或软件的变更自动部署到生产环境不需要人工干预。
2、版本交付策略
(1) 平滑发布
在发布过程中系统不会因为更新代码而停止服务不会造成用户短暂的无法访问
(2) 灰度发布
灰度发布是一种的策略先让一小部分用户使用新版本然后收集用户反馈再将新版本引入生产环境
(3) A/B 发布
A/B 发布是一种将两个或多个不同版本的应用程序同时发布到不同的用户群体中的策略。
二、Jenkins
1、jenkins 概述
jenkins 是一个开源的自动化服务器和持续集成/持续交付CI/CD工具用于自动化和管理软件项目的构建、测试和部署过程
jenkins 原名 Hudson后来成为开源项目
jenkins 是基于 Java 编写的它的核心是一个可扩展的插件系统
jenkins 可在 Tomcat 等流行的 servlet 容器中运行也可独立运行。
2、jenkins 作用
① 实现持续集成CIjenkins 的主要目标是支持持续集成实践确保代码更改频繁地集成到共享代码库自动构建和测试。
② 自动化构建和部署编译、打包、测试以及自动化部署到各个环境。
③ 提供灵活性jenkins 的架构和插件系统为用户提供了广泛的自定义和扩展选项以适应不同项目和工作流的需求。 3、jenkins 环境部署192.168.198.131内存4G
(1) 部署 git
在 jenkins 中使用 git 用于管理项目的源代码。
① 安装依赖包
yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
② 安装 git make prefix/usr/local/git all 编译git源码包
make prefix/usr/local/git install 指定安装目录
③ 修改环境变量
vim /etc/bashrc
PATH$PATH:$HOME/bin:/usr/local/git/bin
source /etc/bashrc 测试是否安装成功 (2) 部署 jdkjdk11
在 jenkins 中jdk 用于构建和运行 Java 项目。
jdk 官网Java Downloads | Oracle
① 解压安装
tar xvzf jdk-11.0.21_linux-x64_bin.tar.gz -C /usr/local/ ② 修改环境变量
vim /etc/bashrc
JAVA_HOME/usr/local/jdk
export PATH$PATH:$JAVA_HOME/bin (3) 部署 Maven
在 jenkins 中Maven 可以自动化项目的构建过程将源代码编译、测试、打包、发布等步骤整合到一起。
① 下载解压 ② 修改环境变量
vim /etc/bashrc
export M2_HOME/usr/local/maven
export M2$M2_HOME/bin
PATH$M2:$PATH:$HOME/bin:/usr/local/git/bin
export JAVA_HOME/usr/local/jdk
export PATH (4) 部署 Tomcat
在 jenkins 部署中Tomcat 用于部署和运行 Web 应用程序。
① 下载解压 ② 修改环境变量
vim /erc/profile
CATALINA_HOME/usr/local/tomcat
export CATALINA_HOME
source /etc/profile ③ 启动并测试 tomcat
开启 tomcat/usr/local/tomcat/bin/startup.sh 关闭 tomcat/usr/local/tomcat/bin/shutdown.sh
(5) 部署 jenkins
① 在官网选择版本 2.426
jenkins.war ② 将 jenkins.war 拷到 tomcat 的工作目录下 ③ 启动 tomcat
启动 tomcat 后会自动解压 webapps 下的 war 包
/usr/local/tomcat/bin/startup.sh ④ 登录 jenkins 管理员默认的初始化密码在 /root/.jenkins/secrets/initialAdminPassword 下 选择安装社区推荐的插件 创建用户 访问地址http://192.168.198.131:8080/jenkins/
4、jenkins 插件管理
(1) 安装插件:
在 “系统管理” 中选择 “插件管理”点击 Available plugins搜索插件名 ① 安装 Deploy to container
作用将 Web 应用程序部署到 Tomcat 容器的开发工具插件。
② 安装 Maven Integration
作用jenkins 利用 maven 进行编译测试打包。
③ 安装 git 相关插件
GitHub Authentication
GitHub Branch Source
GitHub Organization Folderjenkins已配置 ④ 安装 Publish Over SSH
作用在构建过程中通过 SSH 协议上传或下载文件 (2) jenkins 系统设置
配置 jdkgitmaven 的根目录在 “系统管理” 中找到 “全局配置工具” 进行修改
① 配置 jdk ② 配置 git ③ 配置 maven ● 配置 maven 镜像
在 maven 服务器中配置 settings.xml找到 mirrors 配置阿里镜像
/usr/local/maven/conf/settings.xml mirror idalimaven/id namealiyun maven/name urlhttps://maven.aliyun.com/repository/public/url mirrorOfcentral/mirrorOf /mirror (3) SSH 设置
jenkins服务器192.168.198.131 与远程 tomcat 服务器192.168.198.130通过 ssh 进行连接
① jenkins 准备密钥
ssh-keygen
ssh-copy-id -i 192.168.198.130
② 在 jenkins 上配置 ssh 信息
cat ~/.ssh/id_rsa 查看 jenkins服务器131的密钥
在 “系统管理” 中找到 “系统配置”在 “Publish over SSH” 下进行配置 5、jenkins 任务
jenkins 提供管理和监控界面用于设置和配置构建任务以及查看构建日志和结果
maven 的作用是执行构建任务根据项目的 POMProject Object Model文件定义下载所需的依赖编译源代码运行单元测试打包应用程序等
GitHub 是代码托管平台用于存储和管理项目的源代码。 (1) 创建任务
点击 “新建任务”输入任务名选择构建 maven 项目 (2) 设置 maven
① 描述
选择“丢弃旧的构建”每一次构建都会下载数据包勾选 丢弃旧的构建 可以释放磁盘空间删除旧的构建数据从而防止磁盘空间不足。 ② 选择版本控制器和仓库地址公有仓库
https://github.com/bingyue/easy-springmvc-maven
从这个仓库中拉取代码 ③ 设置构建
clean package -Dmaven.test.skiptrue
这是一个 Maven 命令用于清理项目残留的旧文件、执行打包过程并快速构建项目跳过运行测试阶段。 ④ 构建后操作
在 “构建后操作步骤” 中选择send build artifacts over ssh通过SSH发送构建工件 ● Source files源文件
在任务构建后jenkins 服务器上会创建一个 war 包路径/root/.jenkins/jobs/job1/builds/target/*.warSource files 的作用是指明需要传递给远程 tomcat 服务器tomcat1的 war 包的位置
● Remove prefix删除路径前缀
Remove prefix 与 Source files 配合只拷贝 war 包不拷贝整个 target 文件夹下的内容
● Remote directory远程服务器文件夹的位置
远程 tomcat 服务器上用来存放源码的位置需要自行创建 ● Exec command提前写好脚本在源代码传递过来后执行该脚本若成功执行脚本说明源代码拷贝成功
注此实验旨在进行任务的创建过程并未对远程 tomcat 服务器真正进行部署 (3) 构建任务 在远程 tomcat 服务器上查看脚本是否执行 war 包已成功拷贝到远程服务器