增加从节点部署文件同步逻辑。

增加从节点部署文件同步逻辑。

Signed-off-by: panjunjie <46790855@qq.com>
This commit is contained in:
panjunjie 2025-11-10 01:05:49 +08:00
parent 678d2a3050
commit 918229cb84

46
Jenkinsfile vendored
View File

@ -2,8 +2,12 @@ pipeline {
agent any
environment {
DEPLOY_DIR = '/data/nginx/www/fafamall/website'
DIST_PATH = 'dist'
DEPLOY_DIR = '/data/nginx/www/fafamall/website' // 主节点部署目录
DIST_PATH = 'dist' // 编译产物目录
SLAVE_IP = '172.16.0.10' // 从节点 IP
SLAVE_DEPLOY_DIR = '/data/nginx/www/fafamall/website' // 从节点目标目录(与主节点一致)
SSH_PORT = '2203' // 从节点 SSH 端口
SSH_KEY = '/root/.ssh/id_rsa' // Jenkins 服务器(主节点)免密私钥路径
}
stages {
@ -17,20 +21,50 @@ pipeline {
}
}
stage('部署') {
stage('主节点部署') {
steps {
sh """
mkdir -p ${DEPLOY_DIR}
rm -rf ${DEPLOY_DIR}/*
cp -r ${DIST_PATH}/* ${DEPLOY_DIR}/
echo "部署完成:${DIST_PATH} → ${DEPLOY_DIR}"
echo "主节点部署完成:${DIST_PATH} → ${DEPLOY_DIR}"
"""
}
}
stage('同步到从节点') {
steps {
sh """
# 核心逻辑1. 远程创建从节点目录(不存在则创建) 2. rsync 同步文件
echo "开始同步主节点 ${DEPLOY_DIR} → 从节点 ${SLAVE_IP}:${SLAVE_DEPLOY_DIR}"
# 步骤1远程创建从节点目标目录-p 递归创建父目录,已存在不报错)
ssh -i ${SSH_KEY} -p ${SSH_PORT} -o StrictHostKeyChecking=no root@${SLAVE_IP} "mkdir -p ${SLAVE_DEPLOY_DIR}"
if [ \$? -ne 0 ]; then
echo "错误:从节点目录创建失败,请检查 SSH 免密/端口/权限"
exit 1
fi
# 步骤2rsync 同步文件(保持主从一致)
rsync -avz --delete \
-e "ssh -i ${SSH_KEY} -p ${SSH_PORT} -o StrictHostKeyChecking=no" \
${DEPLOY_DIR}/ \
root@${SLAVE_IP}:${SLAVE_DEPLOY_DIR}/
# 验证同步结果
if [ \$? -eq 0 ]; then
echo "✅ 从节点同步完成!主从目录已一致"
else
echo "❌ 从节点同步失败,请查看 Jenkins 控制台日志"
exit 1
fi
"""
}
}
}
post {
success { echo "✅ 部署成功" }
failure { echo "❌ 部署失败" }
success { echo "🎉 整体部署+同步流程全部成功" }
failure { echo "❌ 部署/同步流程失败,请排查问题" }
}
}