版本更新发布WEB化(0)_前期构思

前面在第1个运维平台上用PHP实现了WEB页面,版本更新的功能。为了使运维平台的质量上一个台阶,这次用Python的Django框架来开发。
之前陆续完成了:
WEB页面执行Salt命令、硬件资产管理(自动化收集)、软件应用管理(自动化收集)、Zabbix与RRDtool绘图整合展示。
其中比较重要是版本更新功能,不管前端和后端的代码怎么变,底层都要适配以前已经成熟稳定运行的版本更新流程。
后端版本更新流程可以这样设计:

  1. 上传ZIP包,ZIP包采用全目录结构,为了防止上传代码过程出错,在ZIP包的根目录有一个记录了更新文件MD5码值的readme.txt文件。
  2. 对上传的文件解包,服务器端对其每个文件做MD5码校验,并将所有的MD5码值记录到一个文件,然后拿该文件与ZIP包中的MD5记录文件比较,如果不同,提示上传代码和其记录的MD5值不符合。直到上传的代码和提供的MD5相同才进入下一步。
  3. 在git的work目录中将要替换的旧文件,拷贝一份打包备份,用于回滚操作。然后将更新的文件替换work目录中的文件。
  4. 调用saltapi执行salt的git模块依次执行git.add、git.status、git.commit、git.push完成代码的所有提交工作。
  5. 用saltapi调用需要更新代码的服务器,同步更新后的代码,完成更新服务。
  6. 回滚就是将第三步中备份的ZIP包按3、4、5做一遍。
----------------本文结束 感谢阅读----------------