Я пробовал погуглить, но безуспешно. Моя цель - иметь упакованный каталог с марионеточным файлом и сопутствующим каталогом, содержащим файловые ресурсы, где я могу просто ввести puppet apply setup.pp
и тогда марионетка сделает свое дело.
Я знаю, что рекомендуемый рабочий процесс puppet заключается в создании модулей и размещении там файловых ресурсов для копирования. Для меня это слишком неудобно, так как я не хочу устанавливать туда свои модули; Я просто хочу иметь возможность носить с собой этот небольшой пакет (то есть файл pp и файловые ресурсы).
Как я могу сконфигурировать мой pp-файл так, чтобы он просматривал каталог моего брата или сестры, если я не хочу использовать абсолютные пути? Есть ли другие переменные среды, которыми я могу манипулировать, чтобы заставить марионетку искать «в нужном месте»?
Я видел предложение, которое выглядит так, будто оно расширяет Facter, но я просто ищу что-то, что можно поместить в начало моего файла pp, например:
$basepath = exec{"/usr/bin/pwd":}
...
file {"/home/$title/.nanorc": source => "${basepath}/resources/.nanorc"}
Марионетка - это просто Руби под капотом. Я бы попытался использовать inline_template функция:
file{"/home/$title/.nanorc":
content => inline_template("<%= File.read(ENV["PWD"] + '/resources/.nanorc') %>"),
}