我在具有不同角色的服务器上运行了多个进程,这些进程由 monit 监控。例如,假设我有一个 Apache 服务器和一个带有 MySQL 的 DB 服务器。我有几个 monitrc 文件,可以将它们放入 monit 的配置目录中以监控这些进程。在 chef 中,根据角色确保适当的文件进入 monit 配置目录的最优雅方法是什么?
我看到的选项:
- 使用 monit cookbook 中的模板资源检查节点的角色,看看是否应该执行
- 使用 apache 和 mysql cookbooks 中的模板资源(但检查 monit 是否以某种方式安装)
- 在 monit cookbook 中为每个角色创建单独的食谱,并将它们添加到该角色的运行列表中(monit::mysql、monit::apache 等)
我真正想做的是将确保文件被移动到角色的文件中的代码放入其中,但我认为这是不可能的。有什么想法吗?
答案1
选项 2 是正确的。它也可以是一个 cookbook_file。每个包最清楚应该监控它的哪个方面。这同样适用于 logrotation。