Я использую puppet
управлять приблизительно дюжиной узлов. Один из серверов имеет контрольный инструмент, который требует списка всех узлов и некоторых основных спецификаций.
Я хочу использовать puppet
гарантировать, что список включает каждый текущий узел и что основные спецификации являются текущими (через последнее facts
от узла facter
).
Моя первая идея состояла в том, чтобы проанализировать /var/lib/puppet/yaml/facts
и создайте файл, в котором я нуждаюсь на основе этого. Не самая изящная идея, но это может работать.
У кого-либо больше есть изящные предложения о том, как приблизиться к этой проблеме?
Экспортированные ресурсы . сделает это относительно легко.
Это может быть что-то вроде этого. Но вы можете использовать шаблоны, фрагменты или многое другое для создания файла в системе со всеми данными обо всех узлах, которые вам нужны.
Вот пример чего-то, что я использую для хранения списка всех моих узлов и если Facter обнаружил, что это виртуальные машины или нет.
@@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' |>>
}