NFS schlägt nach dem Verpacken einer Vagrant-Box fehl

8

Ich habe ein seltsames Problem damit, eine Vagrant-Box zu verpacken und hoffe, dass mir vielleicht jemand sagen kann, in welche Richtung ich schauen soll. Das ist die Geschichte

  • Ich habe Vagrant installiert und erfolgreich einige Marionettenmanifeste erstellt und alles funktioniert gut, vagabund up ... Provisioning, ...
  • Dann musste ich zu NFS wechseln, was fehlgeschlagen ist, weil nfs nicht auf meinem Gast-Betriebssystem (Ubuntu 11.04-amd64) installiert war
  • Ich habe nfs-common auf dem Gastbetriebssystem installiert ( sudo apt-get install nfs-common )
  • vagrant halt
  • vagrant up
  • Und der NFS-Mount funktioniert einwandfrei, auch nach mehreren halt / up-Befehlen bin ich glücklich!

Der nächste logische Schritt wäre das Packen der Box, sodass ich nfs-common nicht jedes Mal neu installieren muss, wenn die VM zerstört wird.

  • Im selben Verzeichnis wie oben: vagrant package
  • vagrant box add ubuntuvm2 package.box
  • rm package.box
  • ändere die Zeile config.vm.box in Vagrantfile in ubuntuvm2
  • vagrant destroy
  • vagrant up
  • und plötzlich schlägt der nfs mount fehl, beim sshing in die VM kann ich bestätigen, dass nfs-common tatsächlich installiert ist, aber der NFS-Mount schlägt fehl: Ссылка

Hat jemand eine Idee, in welche Richtung er sich auf die Suche nach einer Lösung begeben sollte?

Ich verwende Virtualbox 4.1.8 und Vagrant 1.0.0 unter OS-X Lion

    
ChrisR 14.03.2012, 08:07
quelle

4 Antworten

13

Ich hatte das gleiche Problem, aber ich habe es herausgefunden. Zumindest funktioniert es jetzt für mich. :)

TL; DR:

  • Überprüfen Sie / etc / exports auf Syntaxfehler und erstellen Sie / etc / exports mit einem Eintrag, für den Sie sicherstellen, dass er funktioniert.
  • Überprüfen Sie, ob die Netzwerkschnittstellen auf der Box korrekt initialisiert sind (überprüfen Sie / etc / network / interfaces und führen Sie ifconfig -a aus).
  • Mindestens Debian und Ubuntu speichern Informationen über das persistente Netzwerkgerät in /etc/udev/rules.d/70-persistent-net.rules. Wenn Sie sehen, dass eth1 als eth2 initialisiert wird, liegt dies daran, dass die mac-Adresse der Netzwerkkarte neu generiert wird, wenn Sie eine neue Box-Instanz erstellen. rm /etc/udev/rules.d/70-persistent-net.rules und packe deine Box neu.
  • Wenn Sie Ihr Box-Update / etc / network / interfaces nicht neu verpacken können, verwenden Sie eth2 instad von eth1

Langform:

  • Vagrant ist 1.0.1
  • OS X ist 10.7.3
  • Box ist benutzerdefiniertes Debian Wheezy 64.

Wenn die Box neu geladen oder neu erstellt wird, würde sie bei NFS mount mit der typischen Nachricht sterben.

%Vor%

Wenn ich die / etc / exports-Datei mit NFS-Manager überprüfe, sagt das, dass meine / etc / exports Syntaxfehler enthalten .

Ich lösche / etc / exports und teste nfs Client und Server mit diesem Eintrag:

%Vor%

Wenn der Vagrant läuft, funktioniert die NFS-Installation wieder.

Beim Umpacken von apt-get dist-upgrade ist mir aufgefallen, dass die NFS-Ordner nicht mehr mounten würden.

Diesmal gab es keine Fehler in der Datei / etc / exports. Ich entdeckte, dass Vagrant die Host-lokale Schnittstelle nicht initialisiert hatte.

/ etc / network / interfaces enthalten dies:

%Vor%

ifconfig -a hat Folgendes zurückgegeben:

%Vor%

Die Schnittstelle wurde nicht korrekt definiert. Nach der Aktualisierung der Zeilengruppe / etc / network / interfaces zur Verwendung von eth2 funktioniert die NFS-Montage wieder.

    
thomasmalt 15.03.2012, 12:22
quelle
4

Hier ist ein offener Fehler und eine Lösung:

Ссылка

  1. Bearbeiten Sie /etc/udev/rules.d/70-persistent-net.rules und löschen Sie Zeilen für andere Schnittstellen als eth0
  2. vagrant package
  3. vagrant box add mypack package.box
  4. vagrant destroy
  5. In Vagrantfile set config.vm.box bis mypack
  6. vagrant up

Ich habe das unter MAC OS X 10.7.5 und CentOS 6.2 64bit getestet.

UPDATE: Der Fehler ist jetzt geschlossen und verschoben aber es sieht so aus, als hätten die Leute immer noch das Problem.

    
Steve Tauber 14.11.2012 03:07
quelle
0

Zusätzlich zu den vorhandenen Antworten hier: Vergessen Sie nicht mögliche Firewalls. Wenn Sie eine Firewall auf Ihrem Hostcomputer ausführen. Der Fehler ist sehr allgemein, obwohl die Fehlermeldung nicht darauf hinweist.

Wenn Sie NoobProof und / oder IceFloor verwenden, deaktivieren Sie die Firewall oder machen Sie die entsprechenden Ausnahmen.

    
Dynom 16.03.2013 16:17
quelle
0

auf Ubuntu 12 Host / Ubuntu 12 Gast funktionierte das folgende für mich mit Diskurs

%Vor%

Hinweis; Ich musste auch Host-IP durch Vagrant und Gast-IP von Vagrant Firewall-Ausnahmen bestimmt bestimmen

    
niccolox 10.02.2014 21:46
quelle

Tags und Links