我想检查我的 nagios 监控是否每个节点都使用 puppetmaster 提供的当前目录版本。
在我的情况下,有:
我想在 host1、host2、hostX 上创建nrpe插件以:
问题:
所以我的问题是,如何监控傀儡代理的健康状况,并在任何主机使用旧的傀儡目录时得到通知?有什么意义吗?
快速简介 - 出于测试目的,我在 5 个节点(Debian Squeeze + puppet 2.7.20-1puppetlabs1)上安装了 puppet 代理,并在 1 个服务器(相同版本)上安装了 puppet master。
在每个清单的 puppetmaster 端,我检查是否 $::osfamily == 'Debian'。有时我也使用 $::fqdn,并检查它是否不为空。
问题是每天随机时间我都会收到来自 puppetmaster 的邮件,说他无法为其中一个节点编译目录。例如:
Fri Jan 18 19:18:24 +0100 2013 Puppet (err): Could not retrieve catalog from remote server: Error 400 on SERVER: Not supported osfamily at /etc/puppet/modules/system/manifests/skel.pp:20 on node mynodeX
Fri Jan 18 19:18:24 +0100 2013 Puppet (notice): Using cached catalog
Fri Jan 18 19:18:24 +0100 2013 Puppet (err): Could not retrieve catalog; skipping run
Run Code Online (Sandbox Code Playgroud)
另一个例子,来自 puppetmaster 日志: …
我将所有节点保存在一个文件 site.pp 中 - 但是随着我添加越来越多的节点,维护它们变得非常困难。
导入指令看起来很有前途,但据我了解文档,每次发生变化时都必须重新启动 puppermaster。对我来说这是不可接受的。
有没有其他方法可以做到这一点?而不是使用大注释来分隔节点/组。现在我只使用 rdoc。
我会很高兴有任何建议:-)
我当前的 puppet 目录结构如下所示:
我使用 git/rsync 部署 puppet 配置以仅覆盖更改的文件。