ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
1、jenkins服务器和各节点服务器之间,要配置基于密钥的登录 (本实例基于www用户) (省略) 2、创建相应的目录,并授权属主属组为www用户 /deploy/tmp 临时目录 /deploy/tar 存放打包后的目录 /opt/wwwroot 远程服务器目录 /web/ 网站目录 3、配置jenkins ![](https://box.kancloud.cn/be5ceec23de2d45ff19ca128cd0a2add_972x413.png) ![](https://box.kancloud.cn/19d29d5194499acff551ada991ca5d46_1033x511.png) ![](https://box.kancloud.cn/259033444b4b999fdea37f85fbb85ca3_983x379.png) 构建成功后,创建一个tag,并传送到git服务器上 ![](https://box.kancloud.cn/485a9a871181f327691762b6eabd16a3_1122x581.png) 4、编写Deploy和回滚脚本 [www@jenkins scripts]$ cat Deploy1.sh #!/bin/bash SrcDir="/var/lib/jenkins/workspace/test_yyg" DeployCode="/deploy/tmp" DstDir="/opt/wwwroot" WebSite="/web/" PRONAME="test_yyg" if [ $# == 1 ];then Ver_NUM=$(echo $1) cd $SrcDir if [ ${Ver_NUM} == 'latest' ];then #版本回退到上一个版本 git reset --hard HEAD^ COMMITID="$(git rev-parse --short HEAD)" ssh www@10.2.11.245 "rm -rf /web/${PRONAME} && ln -s /opt/wwwroot/${PRONAME}-${COMMITID} /web/${PRONAME}" else #版本回退到任意版本,请输入版本COMMITID git reset --hard ${Ver_NUM} ssh www@10.2.11.245 "rm -rf /web/${PRONAME} && ln -s /opt/wwwroot/${PRONAME}-${Ver_NUM} /web/${PRONAME}" fi else cd $SrcDir && git pull COMMITID="$(git rev-parse --short HEAD)" #把版本库里获取的代码,拷贝一份到部署目录里,并且重命名这个项目(按照项目名-commitID号),并且把不要的目录删除掉,比如.git PKGNAME="${PRONAME}-${COMMITID}" cp -rf ${SrcDir} ${DeployCode}/ && cd ${DeployCode} && mv ${PRONAME} ${PKGNAME} cd ${DeployCode}/${PKGNAME} && rm -rf .git cd ${DeployCode} && tar zcf ${PKGNAME}.tar.gz ${PKGNAME} #通过scp命令,把对应的目录拷贝到远程计算机中 scp -r ${DeployCode}/${PKGNAME}.tar.gz www@10.2.11.245:${DstDir}/ ssh www@10.2.11.245 "cd ${DstDir} && tar xf ${PKGNAME}.tar.gz" #通过ssh远程连接到10.2.11.245服务器,创建软连接 ssh www@10.2.11.245 "rm -rf /web/${PRONAME} && ln -s /opt/wwwroot/${PKGNAME} /web/${PRONAME}" fi