
jenkins部署静态网页流程.png

jenkins静态页面的部署.png
#!/bin/bash
DATE=$(date +%F_%H-%M) #时间变量
Name=$DATE-${git_version} #时间变量加版本变量
host="10.0.0.7 10.0.0.8" #部署的主机
get_code() { #打包代码
cd ${WORKSPACE}
tar zcf /opt/web_${Name}.tar.gz ./*
}
scp_code() { #推送代码
for i in $host
do
scp -r /opt/web_${Name}.tar.gz root@$i:/opt/
ssh root@$i "rm -rf /code/web && \
mkdir /code/web_${Name} -p && \
tar xf /opt/web_${Name}.tar.gz -C /code/web_${Name}/ && \
ln -s /code/web_${Name} /code/web"
done
}
back() { #代码回退
for i in $host
do
back_version=$(ssh root@$i "find /code -maxdepth 1 -type d -name "*-${git_version}"")
ssh root@$i "rm -rf /code/web && \
ln -s ${back_version} /code/web"
done
}
deploy() { #部署代码 判断代码是否部署
if [ ${GIT_COMMIT} == ${GIT_PREVIOUS_SUCCESSFUL_COMMIT} ];then
echo "已经部署过"
exit 1
else
get_code
scp_code
fi
}
case $deploy_env in #部署和回退的选项 jenkins选项参数一致
"deploy")
deploy
;;
"rollback")
back
;;
*)
exit 1
;;
esac