需求
实验室项目开发完成初期,需要频繁的进行版本更新迭代,服务器系统采用的是windows server,新版本上线通常分为项目文件上传到服务器、备份旧版本、部署新版本三个步骤,而后两步人为操作十分繁琐且步骤过度机械化,如果每次部署项目需要花费我15分钟,那么每次部署都会花费我15分钟。
工具介绍
通过所学python知识编写一个自动化的部署工具,主要功能为:
- 完成项目的备份操作
- 完成项目的部署操作
- 实时监控项目运行状态
- 控制程序异常重启
工具的每个控制单元称为控制器,为了提高工具扩展性,将控制器属性抽取成配置文件将备份、部署、运行三个功能分为三个功能模块。用户可根据需求随意搭配所需功能模块。
项目地址:https://gitee.com/jia_hongxing/deploy-assistant
dist目录下为打包好的工具,可直接运行。
使用方法
- 运行程序,添加控制器,填写必要信息
- 工程名: 创建的工程名,显示为控制器的名称。
- 文件名: 指定项目文件,如果是java程序的话文件名为xxx.jar
- 源路径: 项目文件的源路径,部署功能将文件A复制到文件B所在目录,那么A所在目录即源路径
- 工程路径: 工程文件所在路径,源路径中B所在目录即工程路径
- 备份路径: 如果需要使用备份功能,则需选择备份路径
- 日志文件存放目录: 目前设置无效,日志文件生成和存放位置需要自定义cmd命令控制
- 自定义cmd命令: 自定义的cmd命令,实现运行功能即执行此命令
- 异常自动重启: 在实现运行功能的前提下,工具监控进程状态,异常退出后将重启进程
根据所需功能填入相应信息,* 为必填项。
- 添加成功后工具主窗口将会显示刚刚添加的控制器,效果如图所示:
功能介绍
-
备份
实现项目文件的备份功能,需要填写备份路径,每次点击备份按钮,工具在备份目录下创建以当天日期命名的新文件夹(如命名重复则在日期后面追加“(i)”,i=2~10,即每天最多创建10个备份文件夹)并且将工程路径下以文件名命名的文件复制到备份路径中对应日期的文件夹中 -
部署
实现项目文件的部署功能,只需填写必填项,每次点击部署按钮,工具将源路径下以文件名命名的文件复制到工程路径下,如果工程路径下已有同名文件,将会覆盖。 -
运行
实现项目文件的部署功能,需要填写自定义cmd命令,每次点击运行按钮,工具会使用subprocess类创建新的进程运行填写的cmd命令,如需运行jar包,自定义cmd命令格式为java -jar xxx.jar