自动化环境部署工具的编写
2012-09-05 16:14
232 查看
开发这个工具的初衷是为了解决一个问题,问题描述如下:
人工部署环境时,会由于不同的用户无意更改conf中的配置,导致最终结果diff追查时候的问题。
为了解决这个问题,有了这个工具的雏形,具体完成功能如下:
1,创建本地模块目录,包括备份现有目录,创建新目录,由传入conf文件中的配置参数决定。
2,去线上机器下载模块到本地,需要下载的模块目录由参数确定。
3,修改 ‘模块的conf文件’(一些配置参数,因为线上和线下的区别会有差异),根据传入的conf文件修改。
在写代码实现的过程中,跟预期中的架构会有出入,所以做到最后就更改为自己的思路了。后来又跟同事沟通后,还是要按照原思路进行;这个过程让我认识了一个工具架构的重要性,在做的过程中,要考虑可扩展,可升级;只有架构够行,才能在以后升级过程中只改动一小部分,而不影响现有功能。
具体架构如下,首先是存储结构:
工具目录------->模块目录 ------>子模块.. -----> new
------>old
------->old.bak
-------->conf目录 ----->总配置文件
------>模块配置文件 .....
-------->总控脚本
-------->父类脚本(所有模块的共性配置)
-------->子类脚本(继承父类脚本,并加入自己需要实现的功能)
然后代码架构:
总控脚本:传入两个参数,一个是模块名,令一个是模块的配置文件地址
接收参数,创建相应的子类对象
子类脚本:初始化过程中,将配置文件中的参数都解析出来存入对象变量中,并展 开操作
因为工具是为多个模块服务的,所以新添加模块的时候,只需要添加一个子类脚本,并且大部分common的功能都在父类中实现了,所以子类只需传入参数调用即可。
所以说每新增一个模块,只需要在总控脚本中加入一行if判断语句,并添加一个子类脚本即可。不会影响现有模块。
人工部署环境时,会由于不同的用户无意更改conf中的配置,导致最终结果diff追查时候的问题。
为了解决这个问题,有了这个工具的雏形,具体完成功能如下:
1,创建本地模块目录,包括备份现有目录,创建新目录,由传入conf文件中的配置参数决定。
2,去线上机器下载模块到本地,需要下载的模块目录由参数确定。
3,修改 ‘模块的conf文件’(一些配置参数,因为线上和线下的区别会有差异),根据传入的conf文件修改。
在写代码实现的过程中,跟预期中的架构会有出入,所以做到最后就更改为自己的思路了。后来又跟同事沟通后,还是要按照原思路进行;这个过程让我认识了一个工具架构的重要性,在做的过程中,要考虑可扩展,可升级;只有架构够行,才能在以后升级过程中只改动一小部分,而不影响现有功能。
具体架构如下,首先是存储结构:
工具目录------->模块目录 ------>子模块.. -----> new
------>old
------->old.bak
-------->conf目录 ----->总配置文件
------>模块配置文件 .....
-------->总控脚本
-------->父类脚本(所有模块的共性配置)
-------->子类脚本(继承父类脚本,并加入自己需要实现的功能)
然后代码架构:
总控脚本:传入两个参数,一个是模块名,令一个是模块的配置文件地址
接收参数,创建相应的子类对象
子类脚本:初始化过程中,将配置文件中的参数都解析出来存入对象变量中,并展 开操作
因为工具是为多个模块服务的,所以新添加模块的时候,只需要添加一个子类脚本,并且大部分common的功能都在父类中实现了,所以子类只需传入参数调用即可。
所以说每新增一个模块,只需要在总控脚本中加入一行if判断语句,并添加一个子类脚本即可。不会影响现有模块。
相关文章推荐
- 使用开源my-deploy工具实现开发环境的代码自动化部署
- scala编写dubbo自动化部署工具
- 使用开源my-deploy工具实现开发环境的代码自动化部署
- ansible自动化工具部署实例
- C#借助API实现黑盒自动化测试工具的编写
- Code UI Automation脱离VS黑盒自动化测试工具编写
- Pupet自动化管理环境部署记录
- Hadoop集群完全分布式模式环境部署和管理的5大工具
- 在windows环境下,使用Eclipse和gcc-Linaro工具链,对BeagleBone进行交叉编译和远程部署
- 自动化运维工具Ansible(一)---安装部署
- Matika版OpenStack伪生产环境部署-自动化安装CentOS7
- 利用apache+svn+jenkins+maven 实现java环境的自动化构建和部署(二)(网内首发超详细版)
- 自动化部署工具
- Triaquae3 自动化运维工具部署及使用说明
- Linux下的Jenkins+Tomcat+Maven+Gitlab+Shell环境的搭建使用(jenkins自动化部署)
- 自动化运维工具SaltStack详细部署
- 在ubuntu上搭建go编程环境(附带自动化部署脚本)
- walle-瓦力自动化部署工具
- 自动化部署与统一安装升级 - 类ansible工具 udeploy0.3版本发布 (更新时间2014-12-24)
- 自动化运维工具Ansible详细部署