Назад | Перейти на главную страницу

puppet: файл хостов nagios продолжает добавлять дубликаты

У нас есть марионетка, созданная с использованием типов nagios. В основном это работает нормально, но иногда я обнаруживаю, что сгенерированный файл puppet-hosts.cfg продолжает расти - хосты просто добавляются и снова добавляются до тошноты. Удаление файла и запуск puppetd -t восстанавливает его отлично.

Наш бит хоста nagios в модуле puppet 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 определяется в главном файле manifest / site.pp). В классе сервера nagios у нас есть строка:

Nagios_host              <<||>> { notify => Service['nagios'] }

При беге puppetd -t на сервере nagios я часто получаю сообщение об ошибке:

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, в том числе на марионеточном сервере, хотя на сервере nagios это 2.6.2, что, я думаю, может быть проблемой.

Я думаю, вы столкнулись с чем-то связанным с Марионеточная ошибка # 4076. Один способ обхода - использовать Модуль Дэвида Шмитта nagios вместо.