当使用多个源文件时,如何知道 Puppet 将使用哪一个?

当使用多个源文件时,如何知道 Puppet 将使用哪一个?

假设你有一个像这样的文件指令:

***SNIP***
file: "/tmp/file_I_need":
    path => "/tmp/file_I_need",
    ensure => "present",
    source:[
        "puppet://$fileserver/files/$name/file_I_need",
        "puppet://$fileserver/files/$group/file_I_need",
        "puppet://$fileserver/files/default/file_I_need",
        ];
***SNIP***

然后每个文件如下:

files/name_that_exists>/file_I_need
files/group_that_exists>/file_I_need
files/default/file_I_need

问题是这样的:

我如何知道 puppet 正在使用哪个源文件?如果我在不同的主机上运行 puppet,我期望不同的文件,我知道它将使用第一个匹配的文件。

除了修改文件并查看是否进行了更改之外,有没有办法准确查看它选择了 3 个源文件中的哪一个?

这是 puppet 2.6.2。(服务器在 Debian 上运行)

笔记:

我正在寻找一种不同于使用文件哈希的方法。我也不喜欢将文件名(或类似内容)放在每个文件的某个位置的解决方案。我想知道如何从 puppet 获取路径。

答案1

将 $hostname 放入文件名或目录名:

source => ["puppet://${fileserver}/files/${name}/file_for_${hostname}.txt",
"puppet://${fileserver}/files/${name}/file_for_default_host.txt"]

相关内容