Korzystam z Vagrant, aby szybko rozpocząć wstępną konfigurację Puppet i jestem zdezorientowany, jak włączyć / uruchomić wiele manifestów (innych niż tylko site.pp) w przepływie pracy wykonania marionetki bez przekształcania dodatkowych manifestów w moduły i włączania ich w ten sposób.
W katalogu manifestów marionetek, na który wskazuję Vagrant (patrz poniżej), mam dwa manifesty, które chcę wykonać: site.pp i 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
Obecnie posiadam site.pp jako manifest, który wywołuje hierasetup.pp. Mój site.pp wygląda następująco:
File {
owner => 'root',
group => 'root',
mode => '0644',
}
import "hierasetup.pp"
include jboss
Ale pojawia się błąd dotyczący wycofania „importu”:
Ostrzeżenie: użycie „importu” jest przestarzałe na /tmp/vagrant-puppet-1/manifests/site.pp:33. Zobacz http://links.puppetlabs.com/puppet-import-deprecation (at gramatyka.ra: 610: w `_reduce_190 ')
Zgodnie z przywoływanym adresem URL w części „Zamiast tego spróbuj” mówi „ Aby zachować definicje węzłów w osobnych plikach, określ katalog jako główny manifest ”.
Co więcej, ten dokument kukiełkowy na temat głównych manifestów mówi:
„ Zalecane: Jeśli intensywnie używasz głównego manifestu zamiast polegać na ENC, rozważ zmianę ustawienia manifestu na $ confdir / manifest. Pozwala to podzielić kod najwyższego poziomu na wiele plików, unikając słowa kluczowego importu. będzie również pasować do zachowania prostych środowisk ”.
Wygląda na to, że Puppet może odwoływać się do całego katalogu zamiast do konkretnego pliku manifestu, tak że spodziewałbym się, że Vagrant zapewni to i pozwoli mi upuścić wiersz „ puppet.manifest_file =" site.pp ”i wskazywać zamiast tego katalog macierzysty, w którym zostaną wykonane wszystkie pliki * .pp. Jednak usunięcie tego wiersza w Vagrant generuje jedynie skargę na oczekiwany „default.pp” zamiast:
dostawca marionetek: * Brakuje skonfigurowanego manifestu marionetkowego. Podaj ścieżkę do istniejącego manifestu: /some/path/puppet_files/manifests/default.pp
Więc:
- Po pierwsze, czy rozumiem „nowy” sposób (bez importu) wywoływania wielu manifestów poprawnie, ponieważ należy wskazać katalog, w którym wszystkie pliki * .pp w nim zawarte zostaną wykonane?
- Po drugie, czy Vagrant „dogonił” tę nową zmianę, aby uwzględnić odniesienie do katalogów w powiązaniu z odrzuceniem przez Puppet „importu”?
Aktualizacja: Dzięki Shane'owi problem z numerem 2 (kod Vagrant nie został złapany, aby umożliwić wskazywanie na katalogi manifestów marionetek) został zgłoszony na stronie śledzenia problemów GitHub Vagrant i od tego czasu został załatany: https://github.com/mitchellh/vagrant / Issues / 4169