Linux-基于Jenkins自动打包并部署Tomcat环境

传统网站部署的流程

在运维过程中,网站部署是运维的工作之一。传统的网站部署的流程大致分为:需求分析-->原型设计-->开发代码-->提交代码-->内网部署-->内网测试-->确认上线-->备份数据-->外网更新-->外网测试-->发布完成。如果在内网测试时发现代码有异常,返回代码开发人员名字,调整代码;如果在外网测试时发现外网部署的代码有异常,可以及时进行网站回滚。

传统代码上线的过程

开发人员发起代码上线的需求(邮件中包含开发做好的WAR包)-->运维人员连接线上负载调度器(Nginx)--> 隔离一组服务器(Tomcat)--> 连接服务器(Tomcat)--> 备份旧代码(tar打包)--> 删除旧代码目录 --> 上传新的WAR包 --> 外网测试 --> 测试不通过则通过备份回滚代码 --> 测试通过则利用rsync的脚本推送代码到其他服务器--> 统一外网测试 -->连接调度器恢复隔离机制 --> 隔离另一组服务器实施上线步骤 --> 上线完成。

目前主流网站部署的流程

目前主流网站部署方法:通过 Hudson/Jenkins 工具平台实现全自动部署+测试,是一个可扩展的持续集成引擎,属于开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins 非常易于安装和配置,简单易用。

  • 开发人员:写好代码,不需要自己进行源码编译、打包等工作,直接将代码分支存放在 SVN、Git 仓库即可。

  • 运维人员:减轻人工干预的错误率,同时解放运维人员繁杂的上传代码、手动备份、更新等操作。

  • 测试人员:可以通过 Jenkins 进行简单的代码及网站测试。

  • Jenkins 的工作原理是先将源代码从 SVN/Git 版本控制系统中拷贝一份到本地,然后根据设置的脚本调用Maven进行 build(构建)。整个系统的关键就是 build 脚本,build 脚本告诉Jenkins 在一次集成中需要执行的任务。

配置实验

配置git主机

安装:yum -y install git

创建用户:useradd git

设置密码:echo "123" | passwd --stdin git

创建本地仓库object2

su - git

mkdir object2.git

cd object2.git

git --bare init

exit

在tomcat节点

下载:yum install -y tomcat

启动:systemctl start tomcat.service

查看:netstat -antpu | grep 8080

192.168.11.128:8080

随意点击一个服务,按提示操作

编译文件:vim /etc/tomcat/tomcat-users.xml 添加:用户名和密码可以更改

<role rolename="manager-gui"/>

<user username="tomcat" password="s3cret" roles="manager-gui"/>

编译文件:vim /var/lib/tomcat/webapps/manager/META-INF/context.xml添加网段

备份文件:cd /var/lib/tomcat/webapps/

删除目录:rm -rf host-manager/ manager/ ROOT/

下载:yum install -y maven 用于打包java网页(用豆包创建网页)

执行:mvn clean package

相关推荐
祖力5519 小时前
快速学会数据结构中的链式队列与循环队列
linux·c语言·数据结构·算法
原凉是这样的丶19 小时前
Qwen3.8-27B 开源后,我用双 RTX 4090 跑通了:vLLM 0.27.1、128K 上下文与 MTP 实测
linux·算法
北京迅为20 小时前
【迅为开发板专属工具】把烧写入口放进浏览器|Topeet RK Flash
linux·人工智能·嵌入式·rk3568·烧写
xiebingsuccess20 小时前
Ubuntu 22.04 在 VMware 上的安装与远程桌面配置 — 任务报告
linux·运维·ubuntu·ai+嵌入式开发
程序员AlbertTu20 小时前
Linux 系统 Bug 调试操作手册
linux·postgresql·bug
juesdo20 小时前
vulnos OS-00118靶场通关
linux·web安全·网络安全·docker
霸刀20 小时前
nslookup 与 dig 使用指南:DNS 查询、区别对比及真实案例解读
linux·cdn·dns
郝亚军21 小时前
asqlite-autoconf-3310100 的ubuntu 22.04 aarch64交叉编译
linux·运维·ubuntu
笑锝没心没肺21 小时前
Linux安装docker及运行容器测试
linux·运维·docker
Mr_liu_66621 小时前
Claude非专业入门实战笔记(附录):关闭Telemetry-遥测,消除无用网络请求与日志噪音
linux·笔记·ubuntu·ai编程