Jenkins持续集成——生产环境构建流程

由于公司线上所有服务器都在阿里云上,而SVN在本地。如果每构建一次并进行单独发布更新,且同一时刻有很多业务模块需要更新的话,不仅加重了上传的网络负载,且更新效率低。为了方便每次发布更新以及更新失败进行快速回滚,因此有了如下方案。


appctl.sh脚本的具体内容及用法请移步:Tomcat统一管理脚本

Jenkins job配置

以下省略参数化触发器的配置部分,配置方法请移步Jenkins持续集成——参数化触发器

  • 通过脚本获取环境变量(Generate environment variables from script)

    由于不同的业务构建后生成的target有的是war包,有的是jar包,需要在上传target之前通过脚本进行区分。

  • 通过ssh上传构建后的target
    1. 更加SVN地址的路径规则获取当前SVN地址所对应的业务和版本号
    2. 先根据业务将target上传到/data/update目录下
    3. 再根据业务和版本号拷贝到/data/backup中对应的子目录

实现效果:

  • 执行构建:
  • 构建完成,在集中服务器的保存状态:

线上主机发布更新

经过以上配置,线上Tomcat环境进行发布更新时,只需在完成构建之后,在需要更新的节点上执行appctl.sh <MODULE> update命令即可。


坚持原创技术分享,您的支持将鼓励我继续创作!
0%