Допустим, у вас есть такая файловая директива:
***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 на разных хостах, я ожидаю разные файлы, я знаю, что он будет использовать файл, который соответствует первым.
За исключением изменения файла и проверки, внесены ли в него изменения, есть ли способ точно узнать, какой из 3 исходных файлов он выбрал?
Это марионетка 2.6.2. (Сервер работает на Debian)
НОТА:
Я ищу другой метод, нежели хеш файла. Мне также не нравится решение помещать имя файла (или подобное) где-нибудь в каждом файле. Я хочу знать, как получить путь от марионетки.
поместите $ hostname в имя файла или имя каталога:
source => ["puppet://${fileserver}/files/${name}/file_for_${hostname}.txt",
"puppet://${fileserver}/files/${name}/file_for_default_host.txt"]