java自动化部署脚本_自动化部署脚本

使用shell脚本实现java灰度发布

脚本使用环境:

1、操作系统:centos 6.5 64位

2、代码使用gitlab进行管理

3、代码每次上线通过tag控制

4、前端使用haproxy实现负载均衡,使用haproxy socat实现RS的平滑上下线

5、WEB container使用tomcat实现

6、项目构建使用maven

使用脚本注意事项:

1、 发布机器需要能够解析web服务器主机名,并且配置ssh通信

2、 变量中的目录以及用户等信息需要自己创建,脚本没有做判断自己创建。我这里web服务器是使用ansible进行部署的,相关目录和用户都会自动创建。

3、代码的部署使用tag,但是代码的更新使用软连接来控制,回滚则切换到上一个软连接

4、由于java是编译型语言,我们使用maven来进行编译,所以需要安装maven环境。

5、关于环境配置文件:配置文件为自己手动维护,每次都是删除git仓库拉取下来的配置文件,把对应环境的代码文件复制进编译目录进行编译。

脚本代码大概的步骤如下:

#!/bin/bash

# 设置时间变量

CTIME=$(date "+%Y-%m-%d-%H-%M")

# 项目名称,建议和gitlab仓库名称一致

project=

# 本地代码目录(gitlab拉取代码后存放目录)

CODE_DIR=/data/gitlab/"$project"

# 临时代码目录,用来修改配置文件和编译打包代码

TMP_DIR=/data/tmp/"$project"

# 用来存放war包

WAR_DIR=/data/war/"$project"

# 对应环境配置文件

deploy_conf=/data/conf/pro/"$project"/*

# 代码中的配置文件路径

local_conf=$TMP_DIR/src/main/resources/config

# 远程主机名称

REMOTE_HOST="tomcat-01 tomcat-02"

# 远程主机代码目录

REMOTE_CODE_DIR=/data/webapps/"$project"

# 远程主机用户

REMOTE_USER=root

# 远程主机war包存放目录

REMOTE_WAR_DIR&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值