堡垒机 Web CLI 部署教程

本文说明如何通过堡垒机进入目标服务器,并部署一个 Tomcat Webhook 服务。示例中的域名、服务器名、账号、WAR 包名均为通用占位名称,请按实际环境替换。

一、进入堡垒机

  1. 打开堡垒机 Web 终端地址:
arduino 复制代码
https://bastion.example.com/luna/
  1. 登录后,在左侧资产树中找到目标服务器,例如:
markdown 复制代码
业务服务器组
└── Web服务组
    └── app-web-server
  1. 右键目标服务器,选择:
sql 复制代码
Connect
  1. 在连接弹窗中选择:
objectivec 复制代码
系统用户:deploy-user
连接方式:Web CLI
  1. 点击 Confirm 进入 Web 终端。

注意:如果选择 SSH Client,可能会尝试拉起本地客户端;如果只想在浏览器里操作,选择 Web CLI。

二、检查服务状态

进入服务器后,先确认 Tomcat 是否运行:

perl 复制代码
ps -ef | grep -E 'tomcat|catalina|java' | grep -v grep

检查 8080 端口是否监听:

perl 复制代码
ss -lntp | grep 8080

如果系统没有 ss,可以使用:

perl 复制代码
netstat -lntp | grep 8080

测试本机接口:

bash 复制代码
curl http://localhost:8080/sample-webhook/api/test

或:

bash 复制代码
curl http://localhost:8080/sample-webhook/api/testPipeline

三、停止 Tomcat

部署前建议先停止 Tomcat:

arduino 复制代码
sudo /opt/tomcat/bin/shutdown.sh

确认进程已退出:

perl 复制代码
ps -ef | grep -E 'tomcat|catalina|java' | grep -v grep

如果仍有残留进程,需要谨慎确认后再处理。

四、清理旧版本

进入 Tomcat 应用目录:

bash 复制代码
cd /opt/tomcat/webapps/

调整权限:

bash 复制代码
sudo chmod -R 755 /opt/tomcat/webapps/

删除旧的 WAR 包和解压目录:

bash 复制代码
sudo rm -f sample-webhook.war
sudo rm -rf sample-webhook

这里的 sample-webhook.war 和 sample-webhook 请替换为实际应用名称。

五、上传或复制新 WAR 包

如果 WAR 包已经在临时目录,例如:

bash 复制代码
/tmp/sample-webhook.war

复制到 Tomcat webapps 目录:

bash 复制代码
sudo cp /tmp/sample-webhook.war /opt/tomcat/webapps/

确认文件存在:

bash 复制代码
ls -lh /opt/tomcat/webapps/sample-webhook.war

六、启动 Tomcat

启动 Tomcat:

ini 复制代码
sudo JAVA_HOME=$JAVA_HOME /opt/tomcat/bin/startup.sh

或:

bash 复制代码
sudo /opt/tomcat/bin/startup.sh

启动后等待几秒,再检查进程:

perl 复制代码
ps -ef | grep -E 'tomcat|catalina|java' | grep -v grep

检查端口:

perl 复制代码
ss -lntp | grep 8080

七、验证服务

本机验证:

bash 复制代码
curl http://localhost:8080/sample-webhook/api/testPipeline

如果有外部访问域名,可验证:

arduino 复制代码
curl https://web-service.example.com/sample-webhook/api/testPipeline

期望结果示例:

csharp 复制代码
HTTP 200
handled Pipeline event

如果返回连接失败,优先检查 Tomcat 是否启动、8080 是否监听、WAR 是否正确解压。

八、查看日志

查看实时日志:

bash 复制代码
cd /opt/tomcat/logs/
tail -f catalina.out

保存日志到文件:

bash 复制代码
tail -f catalina.out > /tmp/sample-log.txt

查看最近错误:

bash 复制代码
grep -Ei 'ERROR|Exception|SEVERE|failed' /opt/tomcat/logs/catalina.out | tail -50

九、常见问题

Tomcat 进程存在但 8080 不通:

perl 复制代码
ss -lntp | grep java

确认实际监听端口,并检查 /opt/tomcat/conf/server.xml:

bash 复制代码
grep -n 'Connector|port=' /opt/tomcat/conf/server.xml

WAR 包没有解压:

bash 复制代码
ls -lh /opt/tomcat/webapps/

检查 Tomcat 日志是否有部署失败:

bash 复制代码
tail -100 /opt/tomcat/logs/catalina.out

外部域名访问失败:

bash 复制代码
curl http://localhost:8080/sample-webhook/api/testPipeline

如果本机正常但外部异常,重点检查 DNS、Nginx、网关、负载均衡或防火墙配置。

十、部署检查清单

css 复制代码
[ ] 已进入正确服务器
[ ] 已停止旧 Tomcat 进程
[ ] 已删除旧 WAR 和旧解压目录
[ ] 已复制新 WAR 到 /opt/tomcat/webapps/
[ ] 已启动 Tomcat
[ ] Tomcat 进程存在
[ ] 8080 端口已监听
[ ] 本机 curl 返回正常
[ ] 外部域名访问正常
[ ] catalina.out 无明显启动错误
相关推荐
Gopher_HBo2 小时前
Go CPU 剖析的"地基":信号、CAS、写屏障、无锁环形缓冲
后端
panbook2 小时前
从0到1实现一个分布式时序数据库(二):写入成功之后,如何用 WAL 找回数据
后端
Swot3 小时前
上传一张 4MB 图片,我先后撞上了三层请求体限制
后端
IT_陈寒3 小时前
Vite的HMR把我整不会了:一个生产环境的热更新坑
前端·人工智能·后端
OLRainM3 小时前
实习复盘:大模型网关渠道质量评分实战(二)—— 报错了到底算谁的锅?流式归因与 Token 补账踩过的 8 个真坑
后端
梦想恒远3 小时前
Spring Boot + LangChain4j 统计 token 成本:ChatModelListener 实测与单价口径
spring boot·后端
努力的小郑4 小时前
数据查到了,回答去哪儿了?一次百炼 + LangChain 排查实录
后端·langchain·agent
isfox5 小时前
Python 虚拟环境:别再把所有项目塞进一个"大仓库"了
后端
易师傅5 小时前
技术面试已死?AI 时代,真正拉开程序员差距的是什么?
前端·后端·程序员
苍何5 小时前
办公 Agent 权威评测榜单出炉了,豆包第一
后端