81 lines
2.3 KiB
Bash
81 lines
2.3 KiB
Bash
#!/bin/bash
|
||
|
||
# NAC资产一键上链系统部署脚本
|
||
# 部署到备份服务器:103.96.148.7
|
||
|
||
set -e
|
||
|
||
echo "========================================="
|
||
echo "NAC资产一键上链系统部署脚本"
|
||
echo "========================================="
|
||
|
||
# 配置变量
|
||
REMOTE_HOST="103.96.148.7"
|
||
REMOTE_PORT="22000"
|
||
REMOTE_USER="root"
|
||
REMOTE_PASSWORD="XKUigTFMJXhH"
|
||
DEPLOY_DIR="/opt/nac-onboarding-system"
|
||
SERVICE_NAME="nac-onboarding"
|
||
|
||
# 1. 编译Rust后端
|
||
echo "[1/8] 编译Rust后端..."
|
||
cd /home/ubuntu/NAC_Clean_Dev/nac-onboarding-system
|
||
cargo build --release
|
||
|
||
# 2. 打包前端文件
|
||
echo "[2/8] 打包前端文件..."
|
||
cd frontend
|
||
npm install
|
||
npm run build
|
||
cd ..
|
||
|
||
# 3. 创建部署包
|
||
echo "[3/8] 创建部署包..."
|
||
mkdir -p dist
|
||
cp target/release/nac-onboarding-system dist/
|
||
cp -r static dist/
|
||
cp -r frontend/build dist/frontend
|
||
cp database/init.sql dist/
|
||
cp .env.example dist/.env
|
||
cp deploy/nac-onboarding.service dist/
|
||
cp deploy/nginx.conf dist/
|
||
|
||
# 4. 上传到备份服务器
|
||
echo "[4/8] 上传到备份服务器..."
|
||
sshpass -p "$REMOTE_PASSWORD" scp -P $REMOTE_PORT -r dist/* $REMOTE_USER@$REMOTE_HOST:$DEPLOY_DIR/
|
||
|
||
# 5. 初始化数据库
|
||
echo "[5/8] 初始化数据库..."
|
||
sshpass -p "$REMOTE_PASSWORD" ssh -p $REMOTE_PORT $REMOTE_USER@$REMOTE_HOST << 'EOF'
|
||
mysql -u root -p < /opt/nac-onboarding-system/init.sql
|
||
EOF
|
||
|
||
# 6. 配置systemd服务
|
||
echo "[6/8] 配置systemd服务..."
|
||
sshpass -p "$REMOTE_PASSWORD" ssh -p $REMOTE_PORT $REMOTE_USER@$REMOTE_HOST << 'EOF'
|
||
cp /opt/nac-onboarding-system/nac-onboarding.service /etc/systemd/system/
|
||
systemctl daemon-reload
|
||
systemctl enable nac-onboarding
|
||
systemctl restart nac-onboarding
|
||
EOF
|
||
|
||
# 7. 配置nginx
|
||
echo "[7/8] 配置nginx..."
|
||
sshpass -p "$REMOTE_PASSWORD" ssh -p $REMOTE_PORT $REMOTE_USER@$REMOTE_HOST << 'EOF'
|
||
cp /opt/nac-onboarding-system/nginx.conf /etc/nginx/sites-available/nac-onboarding
|
||
ln -sf /etc/nginx/sites-available/nac-onboarding /etc/nginx/sites-enabled/
|
||
nginx -t && systemctl reload nginx
|
||
EOF
|
||
|
||
# 8. 验证部署
|
||
echo "[8/8] 验证部署..."
|
||
sshpass -p "$REMOTE_PASSWORD" ssh -p $REMOTE_PORT $REMOTE_USER@$REMOTE_HOST << 'EOF'
|
||
systemctl status nac-onboarding
|
||
curl -I https://onboarding.newassetchain.io
|
||
EOF
|
||
|
||
echo "========================================="
|
||
echo "部署完成!"
|
||
echo "访问地址:https://onboarding.newassetchain.io"
|
||
echo "========================================="
|