
jenkins部署靜態(tài)網(wǎng)頁流程.png

jenkins靜態(tài)頁面的部署.png
#!/bin/bash
DATE=$(date +%F_%H-%M) #時(shí)間變量
Name=$DATE-${git_version} #時(shí)間變量加版本變量
host="10.0.0.7 10.0.0.8" #部署的主機(jī)
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 "已經(jīng)部署過"
exit 1
else
get_code
scp_code
fi
}
case $deploy_env in #部署和回退的選項(xiàng) jenkins選項(xiàng)參數(shù)一致
"deploy")
deploy
;;
"rollback")
back
;;
*)
exit 1
;;
esac