确保具有某些事实的所有傀儡节点列表都是最新的

确保具有某些事实的所有傀儡节点列表都是最新的

我用它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' |>>
}

相关内容