先删除从节点同步
先删除从节点同步 Signed-off-by: panjunjie <46790855@qq.com>
This commit is contained in:
parent
632fff2f27
commit
714aaf99b1
59
Jenkinsfile
vendored
59
Jenkinsfile
vendored
@ -60,64 +60,7 @@ pipeline {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('同步到从节点') {
|
|
||||||
steps {
|
|
||||||
sh """
|
|
||||||
# 核心逻辑:1. 远程创建从节点目录 2. rsync 同步文件(保持主从一致)
|
|
||||||
echo "========================================"
|
|
||||||
echo "开始同步主节点 → 从节点"
|
|
||||||
echo "主节点目录:${DEPLOY_DIR}"
|
|
||||||
echo "从节点信息:${SLAVE_IP}:${SLAVE_DEPLOY_DIR}(SSH端口:${SSH_PORT})"
|
|
||||||
echo "========================================"
|
|
||||||
|
|
||||||
# 步骤1:远程创建从节点目标目录(-p 递归创建,已存在不报错)
|
|
||||||
echo "第一步:创建从节点目标目录..."
|
|
||||||
ssh -i ${SSH_KEY} \
|
|
||||||
-p ${SSH_PORT} \
|
|
||||||
-o StrictHostKeyChecking=no \
|
|
||||||
-o ConnectTimeout=10 \
|
|
||||||
root@${SLAVE_IP} \
|
|
||||||
"mkdir -p ${SLAVE_DEPLOY_DIR}"
|
|
||||||
|
|
||||||
# 检查目录创建结果
|
|
||||||
if [ \$? -ne 0 ]; then
|
|
||||||
echo "错误:从节点目录创建失败!请检查:"
|
|
||||||
echo "1. 主节点是否免密登录从节点(私钥路径:${SSH_KEY})"
|
|
||||||
echo "2. 从节点 SSH 端口 ${SSH_PORT} 是否放行"
|
|
||||||
echo "3. 从节点 root 权限是否足够"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 步骤2:rsync 同步文件(核心同步逻辑)
|
|
||||||
echo "第二步:开始 rsync 同步文件..."
|
|
||||||
rsync -avz \
|
|
||||||
--delete \
|
|
||||||
--exclude="*.log" \
|
|
||||||
--exclude="node_modules" \
|
|
||||||
-e "ssh -i ${SSH_KEY} -p ${SSH_PORT} -o StrictHostKeyChecking=no" \
|
|
||||||
${DEPLOY_DIR}/ \
|
|
||||||
root@${SLAVE_IP}:${SLAVE_DEPLOY_DIR}/
|
|
||||||
|
|
||||||
# 步骤3:远程重启从节点 Nginx(加载新代码)
|
|
||||||
echo "第三步:重启从节点 Nginx 服务..."
|
|
||||||
ssh -i ${SSH_KEY} \
|
|
||||||
-p ${SSH_PORT} \
|
|
||||||
-o StrictHostKeyChecking=no \
|
|
||||||
-o ConnectTimeout=10 \
|
|
||||||
root@${SLAVE_IP} \
|
|
||||||
"systemctl restart nginx"
|
|
||||||
|
|
||||||
# 检查 Nginx 重启结果(容错处理:重启失败不终止流程,仅告警)
|
|
||||||
if [ \$? -eq 0 ]; then
|
|
||||||
echo "✅ 从节点 Nginx 重启成功!新代码已生效"
|
|
||||||
else
|
|
||||||
echo "⚠️ 警告:从节点 Nginx 重启失败!请手动执行以下命令排查:"
|
|
||||||
echo "ssh -i ${SSH_KEY} -p ${SSH_PORT} root@${SLAVE_IP} 'systemctl status nginx'"
|
|
||||||
echo "(同步已完成,仅 Nginx 重启失败,不影响代码一致性)"
|
|
||||||
fi
|
|
||||||
"""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
post {
|
post {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user