假设你有一个像这样的文件指令:
***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"]