脚本结构:
main_.sh
主控制文件,包含自定义常量,开始菜单。
functions.sh
部分多次调用以及代码略多函数放置于此文件。
update_.sh
升级操作主文件,包含前、后端升级操作。
rollback_.sh
回滚操作主文件,包含前、后端回滚操作。
环境需求:
操作系统:linux
使用软件:ansible
使用场景:基于tomcat使用的java环境,于nginx提供前端web访问。
额外配置:所有机器挂载统一目录 /app/update 用于放置升级包以及生成回滚文件夹
所有待更新包放置于 /app/update ,命名方式参考 /app/update/ems-9.5.5
须严格按照 业务名称-版本号(ems-9.5.5)的形式。
业务名称包含(ips|ems|etms|lib)
结构图
Nginx服务器
配置文件路径定义于 main_.sh 中nginx_conf_doc=/usr/local/nginx/conf/vhost
配置文件中需要注意的事项:
1. 后端Upstream 中指定tomcat的ip和端口,以下是举例
upstream demooauth { server 1.1.1.1:1111; }
请严格采用此形式定义,脚本只会读取 upstream 下一行不带 #号 的 server一行内容,并且会在选择更新位置中,出现 upstream 空格后的选项,例如:
2. 前端 定义方式如下:
注:用户中心前端命名为 iportal,脚本已自适应包名称为ips查找为iportal。
Tomcat主机
1. Java程序需放置于tomcat文件夹中的webapps目录下,命名参考以下规则:
业务 |
名称 |
业务a |
a |
例:/opt/zjpp/tomcat-ips-7185/webapps/ips
2. 需保障应用进程存在,ansible主机上脚本会根据端口号查找进程所在位置,以便确定更新目录。
Ansible主机
1. 确保已添加管理机器到ansible_hosts列表
2. 已添加ssh key管理其他主机
3. 于ansible主机 /home/lyops/ly_update/ 执行 main_.sh
文章评论(0)