项目发布原理:
1、研发人员将编译后程序发布到SVN仓库中
2、在发布任务中添加SVN源码管理,从SVN中checkout项目文件
3、使用脚本将网站项目目录备份
4、使用脚本将checkout出的文件覆盖至网站项目目录
5、重启gninx
回滚原理:
当研发提示有问题时,需要把网站内容回滚至先前状态
1、直接通过构建脚本,将发布任务时的备份目录rsync -avz --delete覆盖至网站项目目录
2、重启nginx
过程-项目发布
新建自由风格的软件项目
添加SVN仓库认证
注:Quiet check-out 把勾去掉,输出详细信息
输入构建脚本内容
ansible web -a "mkdir -p /data/`date +%Y%m%d`/"
ansible web -m copy -a "src=/var/lib/jenkins/workspace/www.yuejianyuan.top/ dest=/data/`date +%Y%m%d`/"
ansible web -m shell -a "mkdir -p /data/backup/`date +%Y%m%d`"
ansible web -m shell -a "\cp -a /usr/local/nginx/html/discuz/upload/* /data/backup/`date +%Y%m%d`/"
ansible web -m shell -a "\cp -a /data/`date +%Y%m%d`/* /usr/local/nginx/html/discuz/upload/;chown -R nginx.nginx /usr/local/nginx/html/"
ansible web -m shell -a "/usr/local/nginx/sbin/nginx -s reload;netstat -tnlp"
点击确定
过程-项目回滚
同样新建任务,直接使用构建脚本内容即可
ansible web -m shell -a "rsync -avz --delete /data/backup/`date +%Y%m%d`/ /usr/local/nginx/html/discuz/upload/"
ansible web -m shell -a "/usr/local/nginx/sbin/nginx -s reload;netstat -tnlp"
-------------------end