jenkins php 编译,第四节:jenkins部署php代码(根据tags)

1、安装插件

Git Parameter Plug-In

2、配置jenkins

![](https://box.kancloud.cn/a64d90851875227bab7c2f6a9fa43f3e_1231x623.png)

![](https://box.kancloud.cn/f1d3b131cd96c5cd68d67673227764ba_1185x637.png)

![](https://box.kancloud.cn/e36ad7d93d67d3457ae21130b04572bd_1209x575.png)

![](https://box.kancloud.cn/98a3e0753c01c4e42ac9e06c283f32f2_1078x626.png)

脚本如下

GITDIR="/var/lib/jenkins/workspace"

PRONAME="t_yyg"

DSTDIR="/opt/deploy"

#DATE="`date +%F_%H-%M`"

USER="www"

cat > /home/www/ip.list <

10.2.11.237

10.2.11.233

EOF

function deploy(){

cd ${GITDIR}/${PRONAME} && git pull origin tag ${Tag} && git checkout ${Tag}

cd $GITDIR && tar zcf ${PRONAME}_${Tag}.tar.gz ${PRONAME}/*

mv ${PRONAME}_${Tag}.tar.gz /opt/deploy/

for IP in `cat /home/www/ip.list`;do

scp /opt/deploy/${PRONAME}_${Tag}.tar.gz ${USER}@${IP}:${DSTDIR}

ssh ${USER}@${IP} "cd /opt/deploy && tar xf ${PRONAME}_${Tag}.tar.gz && mv ${PRONAME} ${PRONAME}_${Tag}"

ssh ${USER}@${IP} "cd /var/www/html && rm -rf ${PRONAME} && ln -s /opt/deploy/${PRONAME}_${Tag} /var/www/html/${PRONAME}"

ssh ${USER}@${IP} "chown -R www.www /var/www/html/${PRONAME}"

done

}

function rollback(){

for IP in `cat /home/www/ip.list`;do

ssh ${USER}@${IP} "cd /var/www/html && rm -rf ${PRONAME} && ln -s /opt/deploy/${PRONAME}_${Tag} /var/www/html/${PRONAME}"

ssh ${USER}@${IP} "chown -R www.www /var/www/html/${PRONAME}"

done

}

case $Operation in

Deploy)

deploy

;;

Rollback)

rollback

;;

esac

三)测试:

1)在本地提交,然后push到远程,登录gitlab打tag为v1.1

[root@static yyg]# vim a.html

[root@static yyg]# vim b.html

[root@static yyg]# git add .

[root@static yyg]# git commit . -m "add a b"

[master c1af6ba] add a b

2 files changed, 2 insertions(+)

create mode 100644 a.html

create mode 100644 b.html

[root@static yyg]# git push origin master

Counting objects: 4, done.

Compressing objects: 100% (2/2), done.

Writing objects: 100% (4/4), 325 bytes | 0 bytes/s, done.

Total 4 (delta 1), reused 0 (delta 0)

To gitlab@git.91als.net:root/yyg.git

51d123f..c1af6ba master -> master

2)在本地提交,然后push到远程,登录gitlab打tag为v1.2

[root@static yyg]# vim test.html

[root@static yyg]# git add .

[root@static yyg]# git commit -m "add test.html"

[master b793078] add test.html

1 file changed, 1 insertion(+)

create mode 100644 test.html

[root@static yyg]# git push origin master

然后通过jenkins发布版本

第一次发布v1.0版本

[root@static html]# ll

total 0

lrwxrwxrwx. 1 www www 22 Jan 19 15:33 t_yyg -> /opt/deploy/t_yyg_v1.0

第二次发布v1.1版本

[root@static html]# ll

total 0

lrwxrwxrwx. 1 www www 22 Jan 19 15:35 t_yyg -> /opt/deploy/t_yyg_v1.1

lrwxrwxrwx. 1 www www 23 Jan 18 17:14 yyg -> /opt/deploy/yyg_66f0c74

lrwxrwxrwx. 1 www www 10 Jan 18 13:34 zrlog -> /opt/zrlog

[root@static html]# cd t_yyg/

[root@static t_yyg]# ll

total 1624

-rw-r--r--. 1 www www 11 Jan 18 15:35 a.html

drwxr-xr-x. 5 www www 4096 Jan 18 15:33 app

drwxr-xr-x. 4 www www 4096 Jan 18 15:33 app2

-rw-r--r--. 1 www www 1172529 Jan 18 15:33 app.apk

-rw-r--r--. 1 www www 11 Jan 18 15:35 b.html

(发现多了a.html和b.html代码)

第三次发布v1.2版本

[root@static html]# ll

total 0

lrwxrwxrwx. 1 www www 22 Jan 19 15:37 t_yyg -> /opt/deploy/t_yyg_v1.2

lrwxrwxrwx. 1 www www 23 Jan 18 17:14 yyg -> /opt/deploy/yyg_66f0c74

lrwxrwxrwx. 1 www www 10 Jan 18 13:34 zrlog -> /opt/zrlog

[root@static html]# cd t_yyg/

[root@static t_yyg]# ll|grep test.html

-rw-r--r--. 1 www www 18 Jan 18 15:37 test.html

(发现多了一个test.html)

此时发现代码有问题,需要回退到上一个tag(或指定tag)

比如回退到v1.1

![](https://box.kancloud.cn/4780f28a37e60bd85233aa7e958e9570_803x601.png)

[root@static html]# ll

total 0

lrwxrwxrwx. 1 www www 22 Jan 19 15:39 t_yyg -> /opt/deploy/t_yyg_v1.1

lrwxrwxrwx. 1 www www 23 Jan 18 17:14 yyg -> /opt/deploy/yyg_66f0c74

lrwxrwxrwx. 1 www www 10 Jan 18 13:34 zrlog -> /opt/zrlog

[root@static html]# cd t_yyg/

[root@static t_yyg]# ll |grep test.html

(发现没有test.html,说明版本回退到v1.1咯)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值