一、配置代码发布的目标服务器
系统管理——系统配置—— Publish over SSH(需要提前安装插件)
准备工作 参考文章https://blog.csdn.net/baobaoclass/article/details/124895229
https://blog.csdn.net/dagebaobao/article/details/102914532
在生成服务器生成秘钥
cd /root/.ssh
ssh-keygen -t rsa
然后把公钥传到代码服务器上
scp id_rsa.pub 127.0.0.1:/tmp
然后再代码服务器上
cd /root/.ssh
cat /tmp/id_rsa.pub >> authorized_keys
还需要把发布环境的服务器的账号密码配置到jenkis
系统管理->Configure System->Publish over SSH
构建后的命令
rsync -avz root@127.0.0.1:/data/${JOB_NAME}/deploy_target/ /www/wwwroot/
chmod -R 755 /www/wwwroot/${JOB_NAME}
构建步骤的shell脚本
case $status in
deploy)
echo "status:$status"
backup_path="${JENKINS_HOME}/jobs/${JOB_NAME}/builds/${BUILD_NUMBER}/target"
deploy_path="/data/${JOB_NAME}/deploy_target"
if [ -d $backup_path ];then
echo "$backup_path is exists!"
else
mkdir -p $backup_path
fi
if [ -d $deploy_path ];then
echo "$deploy_path is exists!"
else
mkdir -p $deploy_path
fi
rsync -az ${WORKSPACE} $backup_path/ --delete
rsync -az ${WORKSPACE} $deploy_path/ --delete
echo "deploy done!"
;;
roll_back)
echo "status:$status"
echo "build_id:$version"
backup_path="${JENKINS_HOME}/jobs/${JOB_NAME}/builds/$version/target"
deploy_path="/data/${JOB_NAME}/deploy_target"
rm -rf $deploy_path
cp -r $backup_path $deploy_path/
echo "roll_back done!"
;;
*)
exit
;;
esac