![Linux 应用程序的类似 RANCID 的配置有所不同](https://linux22.com/image/49008/Linux%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E7%B1%BB%E4%BC%BC%20RANCID%20%E7%9A%84%E9%85%8D%E7%BD%AE%E6%9C%89%E6%89%80%E4%B8%8D%E5%90%8C.png)
我正在寻找类似 RANCID 的(http://www.shrubbery.net/rancid/) 配置管理工具 - 问题是我想管理 Linux 应用程序的配置文件,例如 mysql、apache、memcache、varnish、php 等,而不是网络配置。
我希望该工具执行的操作是:
1)定期查询预定的服务器列表(通过SFTP/SSH/SCP?)
2)检查预定的文件列表是否已更改(也许通过校验和?)
3)如果它们已更改,请对新旧文件进行比较,然后通过电子邮件发送更改的电子邮件地址。
- 这是为了变更控制流程,以便团队人员了解变更的发生,并且我们有审计跟踪。需要是实时或准实时(30分钟内变化可以接受)
4) 将新文件提交到源代码控制存储库(也许是 SVN/GIT?)
我很确定 RANCID 可以为 Cisco 路由器、防火墙等网络设备完成大部分(全部?),但问题是它不适用于非网络设备(据我所知)。而且我缺乏 Perl 知识和时间来编写 RANCID 模块来执行上述操作。
所以我正在寻找的是一个类似 RANCID 的交钥匙解决方案(免费固然很好,但我不反对为其支付合理的价格),它可以实现上述功能。有人可以推荐什么吗?
免责声明:我已经知道像 Chef 和 Puppet 这样的集中式配置工具。虽然解决方案很好,但现阶段我并不打算进行自动化/集中式配置部署,而是继续手动管理配置文件,并简单地进行版本化备份和更改通知。
答案1
等等管理员
我过去使用过的一个工具可以完成您正在寻找的大部分功能,那就是etckeeper
。
后端是可配置的,因此您可以选择您想要使用的版本控制系统(git、svn、bazaar 等)。
这github上的初级开发页面拥有您开始使用它所需的一切。
蓝图
另一个可能有用的工具是蓝图。该工具将收集自定义配置以及您使用任何 hte 包管理工具安装的包,例如 APT、Yum、RubyGems、Python 的 easy_install 和 pip、PHP 的 PEAR 和 PECL 以及 Node.js 的 NPM 管理的包。
摘抄
Blueprint 是一个简单的配置管理工具,可对服务器进行逆向工程。它会计算出您手动完成的操作,将其存储在本地 Git 存储库中,生成能够重新创建您的工作的代码,并帮助您将这些更改部署到生产中。