Я использую 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' |>>
}