Назад | Перейти на главную страницу

Как настроить относительные пути для марионетки?

Я пробовал погуглить, но безуспешно. Моя цель - иметь упакованный каталог с марионеточным файлом и сопутствующим каталогом, содержащим файловые ресурсы, где я могу просто ввести 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') %>"),
}