我用它puppet
来管理大约十几个节点。其中一台服务器有一个监控工具,需要所有节点的列表和一些基本规格。
我想利用puppet
来确保列表包含每个当前节点,并且基本规格是最新的(通过facts
节点的最新信息facter
)。
我的第一个想法是解析/var/lib/puppet/yaml/facts
并创建我需要的文件。这不是最优雅的想法,但可能有用。
有人对如何解决这个问题有什么更优雅的建议吗?
答案1
导出资源. 会让这一切变得相对容易。
它可能就像这样简单。但您可以使用模板或片段或许多其他东西在系统上生成一个文件,其中包含您想要的所有节点的所有数据。
下面是一个我用来保存所有节点列表的示例,以及 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' |>>
}