2016-07-12 9 views
0

Ich habe ein Projekt mit einem Setup für eine Multi-Computer-Umgebung für Vagrant. Ich musste einige Probleme beheben, die ursprünglich durch das Redirect-Problem auf HTTPS verursacht wurden, aber das Lösen dieser Fehler führte zu anderen Fehlern, die ich in allen Projekten außer diesem jetzt behoben habe, das die Multi-Machine-Funktion von Vagrant verwendet.Umfang der Module mit Puppet in einer Vagrant Multi-Computer-Umgebung

So habe ich diese Ordnerstruktur:

/Vagrantfile 
/puppet/box_1/puppetfile 
/puppet/box_1/manifests/site.pp 

Dies ist mein Code-Schnipsel, wo ich meine Bestimmung Verzeichnisse definieren:

config.vm.provision :puppet do |puppet| 
    puppet.manifests_path = "puppet/box_1/manifests" 
    puppet.manifest_file = "site.pp" 
end 

Meine puppetfile wie folgt aussieht:

forge "https://forgeapi.puppetlabs.com" 

mod 'tPl0ch/composer' 
mod 'puppetlabs/apt' 
mod 'puppetlabs/apache' 
mod 'puppetlabs/firewall' 

In meiner Website.pp versuche ich include apt, aber ich bekomme diese Fehlermeldung:

Error: Evaluation Error: Error while evaluating a Function Call, Could  not find class ::apt for project.local at /tmp/vagrant-puppet/manifests-f2b1fd0ac42b51938ed6ae7e6917367e/site.pp:1:1 on node project.local 

Wenn ich meine Puppe Dateien wie diese rearange:

/Vagrantfile 
/puppet/puppetfile 
/puppet/manifests/site.pp 

wie das ist der gemeinsame Weg, dies von der Einrichtung, ohne das vorgenannte Problem funktioniert, aber wie ich bereits erwähnt, gibt es andere Boxen, die verschiedene Puppetfiles und site.pp Dateien verwenden, so macht diese Ordnerstruktur etwas Sinn. Es scheint, dass es nicht von Bedeutung ist, wenn ich die Konfiguration für die anderen Felder lösche und meine Vagrant-Datei aufsetze, als ob es nur eine Box wäre, also bin ich einfach verwirrt, wie der Standort dieser Dateien den Umfang beeinflusst bestimmter Klassen.

Also meine Fragen ist hier: Gibt es eine Möglichkeit, diese Ordnerstruktur zu behalten und diese Module noch in Puppetfile in meiner Site.pp definiert zu haben? Oder ist das überhaupt eine schlechte Übung, um es so zu organisieren? Ich suchte nach einigen Beispielen dafür, konnte aber aus irgendeinem Grund keine finden ...

EDIT: Es scheint, auf der Bereitstellung der Puppetfile ist nicht einmal mehr verwendet, wenn es nicht in /puppet/ So vielleicht habe ich gerade Vagrant zu sagen, wie man es benutzt?

+0

Sie Ihre Puppetfile Sind mit 'Bibliothekar-puppet' oder' r10k' finden sollte? –

Antwort

1

definieren, wo Bibliothekar die Puppe Datei

Vagrant.configure("2") do |config| 

    config.librarian_puppet.puppetfile_dir = "puppet/box1" 

    config.vm.provision :puppet do |puppet| 
    puppet.manifests_path = "puppet/box_1/manifests" 
    puppet.manifest_file = "site.pp" 
    end 
+0

Ich weiß nicht, wie das funktionieren soll, bekomme ich diese Fehlermeldung, wenn ich dies versuche: Unbekannte Konfiguration Abschnitt 'Bibliothekar_puppe' – Heisoka

+0

hum .. können Sie Ihr Plugin auflisten? 'vagrant plugin list' –

+0

Die einzige Sache, die ich dort habe, ist: vagrant-share (1.1.3, System) Ich könnte hinzufügen, dass ich nicht root Erlaubnis auf meinem Arbeitsplatz habe ... – Heisoka