Я використовую Vagrant, щоб перейти на початковий конфігурацію лялечки, і я розгублений, як включити / запустити декілька маніфестів (крім просто site.pp) у робочий процес виконання ляльок, не вносячи зайві маніфести в модулі та включаючи їх таким чином.
У каталозі маріонетних маніфестів, на який я вказую Вагрант (див. Нижче), у мене є два маніфести, які я хочу виконати: 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. Мій сайт.pp виглядає так:
File {
owner => 'root',
group => 'root',
mode => '0644',
}
import "hierasetup.pp"
include jboss
Але я отримую цю помилку щодо знецінення "імпорту":
Попередження: використання "імпорту" застаріло в /tmp/vagrant-puppet-1/manifests/site.pp:33. Дивіться сторінку http://links.puppetlabs.com/puppet-import-deprecation (за адресою grammar.ra: 610: у `_reduce_190 ')
Згідно з посиланою URL-адресою у розділі "Намагатись замість цього", в ньому написано " Щоб зберегти визначення вашого вузла в окремих файлах, вкажіть каталог як основний маніфест ".
Далі цей маріонетковий документ на основних маніфестах говорить:
" Рекомендовано. Якщо ви використовуєте головний маніфест замість того, щоб покластись на ENC, подумайте про зміну параметра маніфесту на $ confdir / manifests. Це дозволяє розділити код верхнього рівня на кілька файлів, уникаючи імпорту ключового слова. Це також відповідатиме поведінці простих середовищ ".
Здається, що Ляльковий може посилатися на весь каталог замість просто певного файлу маніфесту, таким чином, я б очікував, що Вагрант зробить це для цього і дозволить мені скинути рядок " puppet.manifest_file =" site.pp "і вказати на батьківський каталог, замість якого всі файли * .pp там будуть виконані. Однак видалення цього рядка у Vagrant просто породжує скаргу на очікуваний "default.pp" замість нього:
ляльковий замовник: * Відсутній налаштований маріонетний маніфест. Вкажіть шлях до наявного маніфесту: /some/path/puppet_files/manifests/default.pp
Тому:
- По-перше, я розумію "новий" (неімпортний) спосіб виклику декількох маніфестів правильно, у тому, що слід вказати каталог, в якому будуть виконуватися всі * .pp-файли всередині нього?
- По-друге, невже Вагрант "наздогнав" цю нову зміну для розміщення посилань на каталоги у поєднанні з недотриманням Лялькою "імпорту"?
Оновлення: Завдяки Шейн, про проблему з №2 (код Вагранта не зафіксовано, щоб дозволити вказівки на каталоги маріонеткових маніфестів) повідомлялося на веб-сайті трекера випуску GitHub Vagrant і з цього часу виправлено: https://github.com/mitchellh/vagrant / випуски / 4169