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

Обеспечение актуальности списка всех марионеточных узлов с определенными фактами.

Я использую puppet управлять примерно десятком узлов. На одном из серверов есть инструмент мониторинга, для которого требуется список всех узлов и некоторые основные характеристики.

Я хочу использовать puppet чтобы убедиться, что в список включены все текущие узлы и что основные спецификации актуальны (через последние facts из узла facter).

Моей первой идеей было разобрать /var/lib/puppet/yaml/facts и на основе этого создайте нужный мне файл. Не самая элегантная идея, но она может сработать.

У кого-нибудь есть более элегантные предложения о том, как подойти к этой проблеме?

Экспортированные ресурсы. сделать это относительно легко.

Это может быть что-то вроде этого. Но вы можете использовать шаблоны, фрагменты или многое другое для создания файла в системе со всеми данными обо всех нужных вам узлах.

Вот пример того, что я использую для хранения списка всех моих узлов и определения того, являются ли фактер виртуальными машинами или нет.

@@file {"/srv/puppet_nodes/hosts.d/$::clientcert":
  content => join( [$::clientcert,
                    "%$::lsbdistid%",
                    "%$::lsbdistcodename%",
                    "%$::virtual%",
                    "\n"],' '),
  tag => 'nodestats',
}

# files will be saved on the filesystem on destnode.example.org
if  $::clientcert == 'destnode.example.org' {
      File <<| tag == 'nodestats' |>>
}