Configuration

確保具有特定事實的所有 puppet 節點的列表是最新的

  • September 24, 2014

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' |>>
}

引用自:https://serverfault.com/questions/631032