我们有一系列手工编写的 Python 脚本,用于验证生产环境/配置中的各种内容。
其中许多是简单的 XML 检查(即验证这里 XML 标记的值是否等于那里那个文件中的值)。其他可能是检查主机是否已启动,或者该应用程序的 crontab 启动时间是否在 X 的 20 分钟内,或者服务器上的日志文件是否包含特定行。
检查在每次生产推送之前自动执行。
脚本是命令式编写的。例如:
- 通过 SSH 连接到服务器
- 打开一个文件
- 解析 XML
- 搜索 XML 标记
- 将值存储在变量中
- 将其与其他地方的另一个值进行比较。
我想看看编写一个框架来以稍微更具声明性的方式进行这些验证 - 即,而不是定义服务器应该如何检查某些东西,我们应该能够说<tag>value</tag> should equal foobar
- 并让框架处理如何。
我在想我们可以安排检查并将工作推到像 Celery 这样的队列中。
为了阻止我重新发明轮子 - 是否有任何现有的项目已经做了这样的事情?
或者这里有没有人做过类似的事情,或者可以提供任何建议?
(我知道像 Puppet 或 Chef 之类的东西 - 甚至是 Salt Stack - 但是,这些是用于管理部署或实际推出配置。这些验证脚本更多地是为了确保手动完成的配置更改是理智的,或者不违反某些基本规则)。
干杯,维克多