Я использую Vagrant, чтобы запустить начальную конфигурацию Puppet, и меня смущает вопрос о том, как включить / запустить несколько манифестов (кроме site.pp) в рабочий процесс исполнения Puppet, не добавляя дополнительные манифесты в модули и не включая их таким образом.
В каталоге манифестов puppet, на который я указываю Vagrant (см. Ниже), у меня есть два манифеста, которые я хочу выполнить: site.pp и hierasetup.pp.
config.vm.provision "puppet" do |puppet|
puppet.manifests_path = "puppet_files/manifests"
puppet.module_path = "puppet_files/modules"
puppet.manifest_file = "site.pp"
puppet.options = "--verbose --debug"
end
В настоящее время у меня site.pp быть манифестом, который вызывает hierasetup.pp. Мой site.pp выглядит так:
File {
owner => 'root',
group => 'root',
mode => '0644',
}
import "hierasetup.pp"
include jboss
Но я получаю эту ошибку об устаревании "импорта":
Предупреждение: использование 'import' не рекомендуется в /tmp/vagrant-puppet-1/manifests/site.pp:33. См http://links.puppetlabs.com/puppet-import-deprecation (в grammar.ra: 610: в `_reduce_190' )
В соответствии с указанным URL-адресом в разделе «Что нужно попробовать вместо этого» написано « Чтобы сохранить определения узлов в отдельных файлах, укажите каталог в качестве основного манифеста ».
Далее этот кукольный документ по основным манифестам гласит:
« Рекомендуется: если вы интенсивно используете основной манифест вместо того, чтобы полагаться на ENC, рассмотрите возможность изменения параметра манифеста на $ confdir / manifest. Это позволяет разделить код верхнего уровня на несколько файлов, избегая при этом ключевого слова импорта. также будет соответствовать поведению простых сред ".
Похоже, что Puppet может ссылаться на весь каталог, а не только на конкретный файл манифеста, так что я ожидаю, что Vagrant сделает для этого условие и позволит мне убрать строку " puppet.manifest_file =" site.pp "и указать на вместо этого родительский каталог, в котором будут выполняться все файлы * .pp. Однако удаление этой строки в Vagrant просто вызывает жалобу на ожидаемый «default.pp» вместо него:
поставщик марионеток: * Отсутствует настроенный манифест Puppet. Пожалуйста, укажите путь к существующему манифесту: /some/path/puppet_files/manifests/default.pp
Так:
- Во-первых, понимаю ли я «новый» (не импортируемый) способ правильного вызова нескольких манифестов, в котором указывается каталог, в котором будут выполняться все файлы * .pp внутри него?
- И во-вторых, «догнал» ли Вагрант это новое изменение, чтобы приспособить ссылки на каталоги в связи с осуждением Puppet «import»?
Обновление: благодаря Шейну проблема с # 2 (код Vagrant не перехватывается, чтобы позволить указывать на каталоги манифестов марионеток) была обнаружена на сайте системы отслеживания проблем GitHub Vagrant и с тех пор была исправлена: https://github.com/mitchellh/vagrant / вопросы / 4169