编写一键发布脚本

作者: 疯狂小兵 | 2017-03-14 | 阅读
「编辑」 「本文源码」

一键发布脚本编写背景

项目比较复杂,每次打包将代码部署到测试环境时都需要在多个配置文件处做相应的更改。为了简化发布流程,降低不必要的工作量。 特编写脚本,一键执行,让脚本代替人执行繁杂且不复杂的工作。

一键发布脚本编写思路

  1. 从远程git上pull最新代码,要保证当前分支没有未提交的代码。

  2. 使用pushd命令切换到需要打包的子项目目录中。pushd命令会记录上一个目录位置,使用popd可以直接跳转到上次访问的目录。

  3. 使用mvn clean package(可能还会有其他参数命令)对目标项目打包。

  4. 对于需要手动操作的多处更改,都可以交给Linux命令sed结合find命令一键完成,提高工作效率,降低低技术含量的工作量。

  5. 使用ssh远程执行命令,停掉tomcat服务。

  6. 使用scp远程安全复制命令将打好的war包,直接复制到tomcat的webapps下。

  7. 使用ssh远程执行命令,启动tomcat服务。同时执行命令时加上nohup命令,这样可以在ssh远程执行命令关闭后,远程命令可以继续执行。

一键发布脚本实例

git pull
pushd ./iform_parent/iform_parent/
mvn clean package

popd 

pushd ./iform_wb/

mvn clean package

popd

#将以指定字符开头的行替换为指定内容
sed -i  's/^client\.credential\.path.*/client\.credential\.path=\/home\/authfile.txt/g' `find . -path "*target*"   \( -name sdk.properties -o -name application.properties  \)`

#替换ip地址
sed -i  's/^servername.*/servername=172\.20\.9\.40\:8080/g' `find . -path "*target*"   \( -name sdk.properties -o -name application.properties  \)`

#停止服务
ssh -t -p 22 root@172.20.9.40 '/usr/local/tomcat/bin/shutdown.sh;'

#部署ifrom_web包
scp -r ./iform_parent/iform_parent/iform_web/target/iform_web-0.0.1  root@172.20.9.40:/usr/local/tomcat/webapps/iform_web

#部署iform_wb包
scp -r ./iform_wb/target/iform_wb-0.0.1   root@172.20.9.40:/usr/local/tomcat/webapps/iform_wb

#重启服务,加上nohup是为了在ssh退出后不中断命令执行
ssh -t -p 22 root@172.20.9.40 'nohup /usr/local/tomcat/bin/startup.sh'

总结

该脚本编写比较仓促,有多处需要完善的地方,此处仅作为参考,可以此为基础编写适合于自己应用的发布脚本。


版权声明:本文由 在 2017年03月14日发表。本文采用CC BY-NC-SA 4.0许可协议,非商业转载请注明出处,不得用于商业目的。
文章题目及链接:《编写一键发布脚本》




  相关文章:

「游客及非Github用户留言」:

「Github登录用户留言」:

TOP