您的位置:首页 > 运维架构 > 网站架构

自动化环境部署工具的编写

2012-09-05 16:14 232 查看
开发这个工具的初衷是为了解决一个问题,问题描述如下:

人工部署环境时,会由于不同的用户无意更改conf中的配置,导致最终结果diff追查时候的问题。

为了解决这个问题,有了这个工具的雏形,具体完成功能如下:

1,创建本地模块目录,包括备份现有目录,创建新目录,由传入conf文件中的配置参数决定。

2,去线上机器下载模块到本地,需要下载的模块目录由参数确定。

3,修改 ‘模块的conf文件’(一些配置参数,因为线上和线下的区别会有差异),根据传入的conf文件修改。

在写代码实现的过程中,跟预期中的架构会有出入,所以做到最后就更改为自己的思路了。后来又跟同事沟通后,还是要按照原思路进行;这个过程让我认识了一个工具架构的重要性,在做的过程中,要考虑可扩展,可升级;只有架构够行,才能在以后升级过程中只改动一小部分,而不影响现有功能。

具体架构如下,首先是存储结构:

工具目录------->模块目录 ------>子模块.. -----> new

------>old

------->old.bak

-------->conf目录 ----->总配置文件

------>模块配置文件 .....

-------->总控脚本

-------->父类脚本(所有模块的共性配置)

-------->子类脚本(继承父类脚本,并加入自己需要实现的功能)

然后代码架构:

总控脚本:传入两个参数,一个是模块名,令一个是模块的配置文件地址

接收参数,创建相应的子类对象

子类脚本:初始化过程中,将配置文件中的参数都解析出来存入对象变量中,并展 开操作

因为工具是为多个模块服务的,所以新添加模块的时候,只需要添加一个子类脚本,并且大部分common的功能都在父类中实现了,所以子类只需传入参数调用即可。

所以说每新增一个模块,只需要在总控脚本中加入一行if判断语句,并添加一个子类脚本即可。不会影响现有模块。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息