1. 程式人生 > 其它 >Jenkins通過指令碼進行自動釋出

Jenkins通過指令碼進行自動釋出

編寫以下指令碼:

-------------------------------------------------------------------------------------
#!/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"

微信讚賞

支付寶讚賞