Jenkins通過指令碼進行自動釋出
阿新 • • 發佈:2021-10-09
編寫以下指令碼:
------------------------------------------------------------------------------------- #!/bin/sh name=web-$(date +%F)-$(($RANDOM+10000)) host=$1 job_name=$2 cd /var/lib/jenkins/workspace/${job_name} && tar zcf /opt/${name}.tar.gz ./* ssh ${host} "cd /usr/share/nginx && mkdir ${name}" scp -r /opt/${name}.tar.gz ${host}:/usr/share/nginx/${name} ssh ${host} "cd /usr/share/nginx/${name} && tar xf ${name}.tar.gz && rm -f ${name}.tar.gz" ssh ${host} "cd /usr/share/nginx && rm -rf html && ln -s /usr/share/nginx/${name} /usr/share/nginx/html" ssh ${host} "nginx -s reload" ------------------------------------------------------------------------------------- 使用指令碼方法: sh -x jenkins.sh 10.0.0.66 my-freestyle-job 將 /var/lib/jenkins/workspace/my-freestyle-job 目錄內容打包 傳送到需要釋出的服務nginx器中.部署完成後 重啟伺服器.
釋出結果: [root@node2 nginx]# ll total 8 lrwxrwxrwx 1 root root 37 Dec 29 22:29 html -> /usr/share/nginx/web-2019-12-29-42021 drwxr-xr-x 2 root root 143 Dec 29 21:43 modules -rw-r--r-- 1 root root 1731 Dec 29 22:29 web-2019-12-29-42021 -rw-r--r-- 1 root root 1731 Dec 29 22:19 web-2019-12-29-41061 #這樣做的好處就是每次網站都會被備份,每次都會指向web根目錄. 釋出過程影響較小 #使用這種方法回退也非常簡單,如: 我們發現 web-2019-12-29-42021 該版本有問題,回退方式就是: rm -f /usr/share/nginx/web-2019-12-29-42021 ln -s /usr/share/nginx/web-2019-12-29-41061 /usr/share/nginx/html
#!/bin/sh name=web-$(date +%F)-$(($RANDOM+10000)) host=$1 job_name=$2 cd /var/lib/jenkins/workspace/${job_name} && tar zcf /opt/${name}.tar.gz ./* ssh ${host} "cd /usr/share/nginx && mkdir ${name}" scp -r /opt/${name}.tar.gz ${host}:/usr/share/nginx/${name} ssh ${host} "cd /usr/share/nginx/${name} && tar xf ${name}.tar.gz && rm -f ${name}.tar.gz" ssh ${host} "cd /usr/share/nginx && rm -rf html && ln -s /usr/share/nginx/${name} /usr/share/nginx/html" ssh ${host} "nginx -s reload"
支付寶讚賞