我们有一个使用 nagios 类型设置的 puppet。大多数情况下它工作正常,但有时我发现生成的 puppet-hosts.cfg 文件不断增长 - 主机只是被反复添加和重新添加。删除文件并运行可以puppetd -t
重新生成它。
我们的 puppet nagios 模块中的 nagios 主机位是:
# set up alias
$real_nagios_alias = $nagios_alias ? { '' => $hostname, default => $nagios_alias }
$real_nagios_contact_groups = $nagios_contact_groups ?
{ '' => 'admins', default => $nagios_contact_groups }
$real_nagios_parents = $nagios_parents ? { '' => '', default => $nagios_parents }
$default_nagios_hostgroups = 'all-servers'
$real_nagios_hostgroups = $nagios_hostgroups ?
{ '' => $default_nagios_hostgroups, default => $nagios_hostgroups }
@@nagios_host { $hostname:
ensure => present,
address => $fqdn,
alias => $real_nagios_alias,
contact_groups => $real_nagios_contact_groups,
hostgroups => $real_nagios_hostgroups,
parents => $real_nagios_parents,
use => 'generic-host',
target => $nagios_puppet_host_file,
}
($nagios_puppet_host_file
在主 manifests/site.pp 文件中定义)。在 nagios 服务器类中,我们有以下行:
Nagios_host <<||>> { notify => Service['nagios'] }
在nagios服务器上运行时puppetd -t
,我经常会收到如下错误:
err: Could not prefetch nagios_host provider 'naginator': Could not parse configuration for nagios_host: line 15: syntax error at '
' in /usr/local/nagios/etc/puppet-hosts.cfg
行号有所不同,但是当我查看文件时,行号将与以下内容对齐:
define host {
address somehost.example.org
contact_groups admins
行号将是带有“地址”的行。除此之外,我还没有发现它抱怨哪个主机的模式。
那么,宿主不断再生有什么原因吗?
Puppet 版本通常是 0.25.4,包括在 puppet 服务器上,尽管 nagios 服务器上是 2.6.2,我猜这可能是问题所在。
答案1
我认为你遇到了一些与Puppet 漏洞 #4076. 一个解决方法是使用David Schmitt 的 nagios 模块反而。