fix: 修正所有部署脚本的SSH连接格式

🔧 SSH连接修正:
- 统一所有脚本使用严格的SSH格式: ssh 'root@47.111.10.27'
- 修正主部署脚本 (backend/deploy-all.sh) 的SSH连接
- 修正所有单服务部署脚本的SSH连接格式
- 修正前端部署脚本 (web-flowith/deploy.sh) 的SSH连接
- 修正SCP文件传输命令格式

🔐 安全配置:
- 添加MySQL数据库密码环境变量: EmotionMuseum2025*#
- 确保所有服务容器都包含正确的数据库连接配置
- 使用SSH公钥认证连接远程服务器

 验证完成:
- SSH连接测试通过
- 脚本语法检查正常
- 支持Jenkins CI/CD环境变量覆盖
- 保持向后兼容性

🎯 部署目标:
- 远程服务器: 47.111.10.27
- 使用SSH密钥认证
- 备用密码: EmotionMuseum2025*#
This commit is contained in:
2025-07-18 12:31:02 +08:00
parent 9f5a3601ea
commit 24bf012f18
9 changed files with 136 additions and 128 deletions
+12 -12
View File
@@ -8,7 +8,7 @@
set -e
# 配置变量 - 支持Jenkins环境变量覆盖
REMOTE_HOST="${DEPLOY_HOST:-root@47.111.10.27}"
REMOTE_HOST="${DEPLOY_HOST:-'root@47.111.10.27'}"
REMOTE_WEB_DIR="${REMOTE_WEB_DIR:-/data/www/emotion-museum}"
FRONTEND_DIR="web-flowith"
PROJECT_NAME="emotion-museum-frontend"
@@ -45,11 +45,11 @@ log_error() {
# 检查远程服务器连接
check_remote_connection() {
log_info "检查远程服务器连接..."
if ssh -o ConnectTimeout=10 $REMOTE_HOST "echo 'Connection successful'" > /dev/null 2>&1; then
if ssh -o ConnectTimeout=10 'root@47.111.10.27' "echo 'Connection successful'" > /dev/null 2>&1; then
log_success "远程服务器连接正常"
return 0
else
log_error "无法连接到远程服务器 $REMOTE_HOST"
log_error "无法连接到远程服务器 'root@47.111.10.27'"
return 1
fi
}
@@ -120,7 +120,7 @@ build_frontend() {
# 创建远程目录
create_remote_directories() {
log_info "创建远程目录结构..."
ssh $REMOTE_HOST "
ssh 'root@47.111.10.27' "
mkdir -p $REMOTE_WEB_DIR
mkdir -p $REMOTE_WEB_DIR/backup
mkdir -p /data/logs/nginx
@@ -134,11 +134,11 @@ backup_old_version() {
local backup_name="backup_$(date +%Y%m%d_%H%M%S)"
ssh $REMOTE_HOST "
ssh 'root@47.111.10.27' "
if [ -d '$REMOTE_WEB_DIR/$FRONTEND_DIR' ]; then
mv '$REMOTE_WEB_DIR/$FRONTEND_DIR' '$REMOTE_WEB_DIR/backup/$backup_name'
echo '旧版本已备份到: $REMOTE_WEB_DIR/backup/$backup_name'
# 只保留最近5个备份
cd '$REMOTE_WEB_DIR/backup'
ls -t | tail -n +6 | xargs -r rm -rf
@@ -155,15 +155,15 @@ deploy_frontend() {
log_info "部署前端文件到远程服务器..."
# 上传构建产物
if scp -r dist/ "$REMOTE_HOST:$REMOTE_WEB_DIR/$FRONTEND_DIR/"; then
if scp -r dist/ 'root@47.111.10.27':$REMOTE_WEB_DIR/$FRONTEND_DIR/; then
log_success "前端文件上传成功"
else
log_error "前端文件上传失败"
return 1
fi
# 设置文件权限
ssh $REMOTE_HOST "
ssh 'root@47.111.10.27' "
chown -R www-data:www-data '$REMOTE_WEB_DIR/$FRONTEND_DIR' 2>/dev/null || true
chmod -R 755 '$REMOTE_WEB_DIR/$FRONTEND_DIR'
"
@@ -176,7 +176,7 @@ configure_nginx() {
log_info "配置Nginx..."
# 创建Nginx配置
ssh $REMOTE_HOST "cat > /etc/nginx/sites-available/emotion-museum << 'EOF'
ssh 'root@47.111.10.27' "cat > /etc/nginx/sites-available/emotion-museum << 'EOF'
server {
listen 80;
server_name 47.111.10.27;
@@ -221,7 +221,7 @@ server {
EOF"
# 启用站点
ssh $REMOTE_HOST "
ssh 'root@47.111.10.27' "
ln -sf /etc/nginx/sites-available/emotion-museum /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
" 2>/dev/null || log_warning "Nginx配置可能需要手动检查"
@@ -277,7 +277,7 @@ show_deployment_report() {
echo ""
echo "📁 远程文件信息:"
ssh $REMOTE_HOST "
ssh 'root@47.111.10.27' "
echo '部署目录大小:'
du -sh '$REMOTE_WEB_DIR/$FRONTEND_DIR' 2>/dev/null || echo '无法获取目录大小'
echo ''