2016-08-05 49 views
1

Ich versuche, eine Vagabund-Box mit Puppe bereitzustellen und ich bin schrecklich verwirrt, wo ich Marionette installieren muss. Laut Vagrant Documentation unter Provisioning bedeutet die Dokumentation, dass Marionette auf meinem Hostrechner ist und wenn ich renne, suche Vagrant nach Manifesten und Modulen in meiner Host-Umgebung. Vagrant Puppet ProvisioningWo installiere ich Puppe für eine VM? Gastgeber oder Gast?

Ich möchte jedoch nicht ein paar Puppenmodule installieren und Dateien auf meinem Host erstellen. Was ich will, ist eine Vagabund-Box zu starten und dann diese Manifest-Dateien und Module auf der virtuellen Maschine selbst zu haben, so kann ich die Box vagrant package und an Teamkollegen weitergeben. Vagrant Dokumentation sagt, dass ich die Manifest-Datei in der VM wie puppet.manifests_path = ["vm", "/path/to/manifests"] haben kann, kann ich entweder tun oder. Ich bin wirklich verwirrt darüber, wie das funktioniert.

Zusätzlich sah ich ein Youtube-Tutorial, das ein begleitendes GitHub-Beispiel Vagrant example hatte. Dieser Typ scheint alles zu umgehen, was ich in der Puppendokumentation gelesen habe. Nein, in diesem Repository gibt er Modulklassen oder Pakete an. Kann mich jemand auf ein Beispiel hinweisen, wie man eine Box bereitstellt, die die beste Vorgehensweise darstellt?

+0

Sie könnten auf mehr Glück [Super User] (// superuser.com) – FrankerZ

+0

prüfen das ist interessant i Hilfe hoffen, dass Sie http://superuser.com/questions/743448/ is-there-any-reason-to-use-puppet-neben-mit-docker/744101 # 744101 –

+0

Ich bin nicht viel von einem Vagabund Kerl, aber Sie haben im Grunde zwei Möglichkeiten mit Puppet: (1) setzen Sie alle benötigten Manifeste und Daten, einschließlich Module, auf dem Rechner, der konfiguriert wird, und "marionet apply" verwenden, um sie anzuwenden, oder (2) die benötigten Manifeste und Daten auf einem Rechner mit dem puppetmaster-Dienst ablegen und 'puppet agent' auf dem Rechner verwenden konfiguriert werden, um die entsprechende Konfiguration abzurufen und anzuwenden. Es klingt, als hättest du Beispiele von beiden gesehen. Puppet selbst muss jedoch auf der zu konfigurierenden Maschine sein. –

Antwort

0

Nach Vagrant Dokumentation unter Provisioning bedeutet die Dokumentation, dass Marionette auf meiner Host-Maschine ist, und wenn ich vagrant laufe bis vagrant für meine Manifeste und Module auf meiner Host-Umgebung suchen.

Ich bin mir nicht sicher, wo ist die Verwirrung, aber lass mich versuchen, zu klären.

Puppet wie alle provisioner laufen auf dem Gast (eigentlich die einzige Ausnahme ist die Ansible provisioner und sogar für ansible hat das vagabundierende Team seit den Ansible local ins Leben gerufen, die auf dem Gast direkt läuft) so, wenn Sie eine Marionette provisioner:

  • vagrant werden versuchen, Marionette auf dem Gast-VM zu installieren (falls es nicht bereits vorhanden)

  • vagrant wird die offenkundigen und Modul-Dateien vom Host zum Gast kopieren (in der Regel werden sie auf dem Gast zur Verfügung stehen unter /tmp/vagrant-puppet ...)

so aussehen zu einer bestimmten Puppe Config kann (ein wirklich üblichen)

config.vm.provision :puppet do |puppet| 
    puppet.manifests_path = "puppet/manifests" 
    puppet.manifest_file = "site.pp" 
    puppet.module_path = "puppet/modules" 
    puppet.hiera_config_path = "puppet/hiera.yaml" 
end 

auf meinem Gastgeber, habe ich die folgende Struktur

.project-directory 
| 
|---- Vagrantfile 
| 
|---- puppet 
     |-------- hiera.yaml 
     |-------- manifests 
        |------- base-app.pp 
     |-------- modules 
        |------- ...modules... if any 

wenn Sie vagrant up tun:

  1. vagrant wird puppe installieren t, wenn sie nicht auf dem Gast
  2. vagrant die puppet/modules Ordner vom Host zum Gast vom Host zum Gast /tmp/vagrant-puppet/modules-b14a7087a41f2cfba87af62658880213
  3. vagrant teilt ihnen die puppet/manifests Ordner teilt /tmp/vagrant-puppet/manifests-846018e2aa141a5eb79a64b4015fc5f3
  4. wenn provisioner muss ausgeführt werden sollte (erstes VAGRANT oder provisioner flag übergibt auf der CLI) vagrant wird ausgeführt Puppe auf dem Gast den folgenden Befehl ein:

    puppet apply --modulepath '/tmp/vagrant-puppet/modules-b14a7087a41f2cfba87af62658880213:/etc/puppet/modules' --manifestdir /tmp/vagrant-puppet/manifests-846018e2aa141a5eb79a64b4015fc5f3 /tmp/vagrant-puppet/manifests-846018e2aa141a5eb79a64b4015fc5f3/site.pp 
    

so Sie können sehen, dass alles auf dem Gast installiert ist und auf dem Gast ausgeführt wird. Sie müssen lediglich die Marionettenkonfiguration und die Module, die auf dem Gast installiert werden, auf dem Host verwalten.

+0

Dies ist eine gute Antwort, aber Sie sollten direkt ansprechen, was er speziell tun möchte: Was ich will, ist eine Vagabund-Box zu starten und dann ... "Vagabund Paket" die Box und es an Teamkollegen weitergeben. Das wäre eine sehr gute Antwort. –

+0

@MattSchuchard es könnte sein, ich nahm es als das OP wollte eine Box erstellen und möchte sicherstellen, dass Marionette nicht auf Host installiert werden muss, so wenn seine Box mit Marionette Provisioner verteilen wird es richtig funktionieren. DanRubio bitte klären und wenn nötig werde ich meine antwort aktualisieren –

0

Marionette kann auf der Box installiert werden. Verwenden Sie einfach diese:

config.vm.box = "puppetlabs/centos-7.2-64-puppet" 
+0

das ist das os selbst, also ja wenn es marionette schon installiert hat - aber wenn es eine box wo Marionette nicht installiert ist, was würdest du dann machen? – serup