linux 资源打包转发

具体场景:3 台服务器 A、B、C;

  1. A 为构建服务器,有各种环境,大内存;
  2. B 为跳板服务器,有连接其它各种服务器的权限;
  3. C 为线上工作服务器,要求稳定法,权限严格;

A 构建打包后的资源文件需要通过 B 转发到 C 部署;

A 服务上的构建脚本:

#!/bin/bash

repos_dir="/home/ubuntu/web/blog_FE"
dist_dir = "/home/ubuntu/web/blog_FE/dist"
BRANCH=master

cd $repos_dir

git checkout $BRANCH -f
git pull origin $BRANCH -f

sudo rm -rf dist_dir
npm install
npm update
npm run build

# 压缩打包;
cd dist_dir
tar -zcvf dist.tar.gz ./*

# 由 A 分发到 B 服务器,(A 通过 key 连接 B);
scp -i /home/ubuntu/.ssh/id_rsa  -r /home/ubuntu/web/blog_FE/dist/dist.tar.gz  B_user_name@52.82.23.242:/home/B_user_name/web/blog_FE

# 执行 B 服务器的转发脚本,以转发至 C 服务器
ssh -i /home/ubuntu/.ssh/id_rsa  B_user_name@52.82.23.242  "sh /home/B_user_name/web/blog_FE/move.sh"

B 服务器上的转发脚本 move.sh

#!/bin/bash

# 由 B 转发到 C 服务器,(B 通过 password 连接 C);
scp -P123456 -r /home/B_user_name/web/blog_FE/dist.tar.gz C_user_name@164.52.28.33:/home/app/dist

# 在 B 执行 C 服务器上的解压缩、部署脚本;
ssh -p 123456 C_user_name@164.52.28.33 "sh /home/app/deploy_blog_FE.sh"


C 服务上的解压缩部署脚本 deploy

#!/bin/bash

work_dir = "/home/app/blog_FE"

cd /home/app
rm -rf /home/app/blog_FE/*
tar -zxvf /home/app/dist/dist.tar.gz -C work_dir

至此,完成了,在 A 构建,通过 B 转发,部署到 C 服务器的流程。

posted @ 2022-08-29 10:40  大_大汤  阅读(46)  评论(0编辑  收藏  举报