千家信息网

通过ssh主机互信打通内、外网,使用shell脚本自动部署测试环境

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,一、背景介绍svnServer在内网环境,测试环境搭建在阿里云公网上,分为DBServer和WebServer。每次手动部署时都需要诸多步骤,开启多个终端操作,可谓耗时又繁琐,再加上新人经验不足,部署
千家信息网最后更新 2026年11月03日通过ssh主机互信打通内、外网,使用shell脚本自动部署测试环境

一、背景介绍

svnServer在内网环境,测试环境搭建在阿里云公网上,分为DBServer和WebServer。每次手动部署时都需要诸多步骤,开启多个终端操作,可谓耗时又繁琐,再加上新人经验不足,部署过程时常出现问题。


  • 手动部署测试环境的步骤:


服务器操作步骤
svnServer(内网)
  1. 使用maven命令打包;

  2. 将版本提交至svn;

本地PC
  1. 将提测版本使用WinSCP工具get到本地;

  2. 通过WinSCP工具将提测版本,分别上传到DBServer和WebServer

DBServer

(公网)

  1. 登录DBServer,删除原有的release内容;

  2. Drop database;

  3. 赋予Mysql_SetUp.sh执行权限;

  4. 执行Mysql_SetUp.sh,重新建库,测试脚本的正确性;

WebServer

(公网)

  1. 停止应用服务;

  2. 备份各子系统应用;

  3. 删除过期日志;

  4. 部署各个子系统;

  5. 启动各个子系统


二、解决方案

长此以往下去,终究是不可行的!

如果用shell固化所需执行的步骤、执行的命令,对新手而言是不是简易多了呢?

如果只在一台server上就将所有的步骤执行完了,是不是更完美了呢?


既然svnServer作为部署工作的入口,那就把它作为console。

定下console之后,问题又来了,它如何与公网的server"沟通"呢?ssh主机互信来帮忙!通过主机互信,打通内外网,跨起一座沟通的桥梁。

按照部署步骤,可归纳为4个阶段:

  1. 升级前的准备工作:停止web应用服务;删除旧文件;

  2. 分别提测内容的上传;

  3. 部署DBServer;

  4. 部署WebServer;


  • 使用shell脚本部署的步骤:

服务器操作步骤
svnServer(内网)
  • 1pre_env.sh

  • 2copy_build.sh

  • 3deploy_db.sh

  • 4deploy_web.sh

通过shell脚本来部署,感觉要操作的内容减少了,这个过程简单了、顺畅了!


三、脚本编写及调试

有了以上的解决方案,就开始实践,毕竟实践出真知!

3.1 ssh主机互信

1. 在3台server生成各自的创建 RSA密钥和公钥;

ssh-keygen -t rsa

2. 整合公钥文件,将所有的key文件汇总到内网server的认证文件中;

ssh svnServer cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ssh DBServer cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ssh WebServer cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

3. 分发整合的key认证文件,到各server上;

scp ~/.ssh/authorized_keys DBServer :~/.ssh/

scp ~/.ssh/authorized_keys WebServer :~/.ssh/

4. 验证互信

ssh DBServer

OK,主机互信搞定,各台server已经可以"免签"了。


3.2 编写脚本

脚本分为两层,svnServer上的脚本远程调用DBServer、WebServer 上的脚本,进行环境准备、安装部署。


1pre_env.sh,远程调用shell脚本,实现停止web应用服务;删除旧文件;


2copy_build.sh,通过scp命令,将应用直接从svnServer上传到web和DBserver上;


3deploy_db.sh、4deploy_web.sh


四、总结

通过编写该脚本,规避了误操作的风险,提高了部署的效率。同时也实现了学有所用!

脚本 步骤 文件 应用 服务 主机 环境 公网 测试 内容 命令 子系统 应用服务 版本 公钥 工具 手动 方案 服务器 解决方案 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会 互联网科技保险 科技制造互联网公司 北京互联网科技公司 紫鲸互联网科技 北京互联网络科技有限公司 互联网科技股有哪些 广西拼得多互联网科技有限公司 互联网科技公司招聘 成都玖崟互联网科技有限公司乐商圈怎么样 科技与互联网的利与弊 隆华科技工业互联网 互联网科技热点资讯 上海宁丞科技互联网 杭州壁岐互联网科技有限公司 玉溪新华互联网科技好不好 银川新华互联网科技学校是国营吗 张家口科技产业互联网平台 绵阳真晨互联网科技有限公司 上海互联网科技园景观 互联网科技有限公司图片 互联网科技公司发展 互联网 科技服务平台 阿里互联网科技公司 岳阳华臻互联网科技有限公司 电子科技大学互联网创业大赛 特约风豹互联网科技为什么扣费 伊宁互联网科技做什么的 世界互联网科技成果奖 悟空问答互联网科技
0