Frage

Ich habe ein seltsames Problem mit dem (Um-) Verpacken einer Vagrant-Box und hoffe, dass mir vielleicht jemand sagen kann, in welche Richtung ich schauen soll.Das ist die Geschichte

  • Ich habe Vagrant installiert und habe erfolgreich einige Marionettenmanifeste erstellt und alles funktioniert einwandfrei, vagrant up...Provisioning, ...
  • Dann musste ich zu NFS wechseln, was fehlschlug, weil nfs auf meinem Gastbetriebssystem nicht installiert war (Ubuntu 11.04-amd64)
  • 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, ich bin glücklich!

Der nächste logische Schritt wäre das Verpacken der Box, damit 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
  • ändern Sie die Zeile config.vm.box in Vagrant-Datei zu ubuntuvm2
  • vagrant destroy
  • vagrant up
  • und plötzlich schlägt das nfs-Mount fehl, beim sshing in die VM kann ich bestätigen, dass nfs-common tatsächlich installiert ist, aber das NFS-Mount schlägt einfach fehl: https://img.skitch.com/20120302-kwix296t44y31rxkd52pwm72f4.jpg

Hat jemand eine Idee, in welche Richtung er nach einer Lösung suchen soll?

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

War es hilfreich?

Lösung

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

tl; dr:

  • Check / etc / Exports für Syntaxfehler und Erstellen / ETC / Exports mit einem Eintrag, den Sie sicherstellen, dass Arbeiten sicherstellen.
  • Überprüfen der Netzwerkschnittstellen auf der Box werden korrekt initialisiert (Check / etc / network / interfaces und run ifconfig -a).
  • Zumindest Debian- und Ubuntu-Speicherinformationen über das anhaltende Netzwerkgerät in /etc/udev/Rules.d/70-persistent-net.Rules. Wenn Sie sehen, dass ETH1 als ETH2 initialisiert wird, ist es daran, dass die MAC-Adresse der Netzwerkkarte regeneriert wird, wenn Sie eine neue Box-Instanz erstellen. RM /etc/udev/rules.d/70-persistent-net.Rules und verpacken Sie Ihre Box.
  • Wenn Sie Ihre Box-Update / etc / network / interfaces nicht umpacken können, um eth2 instad von eth1
  • zu verwenden

langes Formular:

  • vagrant ist 1.0.1
  • os x ist 10.7.3
  • Box ist ein benutzerdefiniertes Debian-Wheezy 64.

Wenn Sie beim Nachladen oder Erstellen der Box auf der NFS-Montierung mit der typischen Nachricht sterben.

generasacodicetagpre.

Untersuchen der / etc / exports-Datei mit NFS-Manager Es sagt mir mein / etc / Exports enthalten Syntaxfehler.

i Reinigen Sie Out / etc / exportiert und testen Sie NFS-Client und Server mit diesem Eintrag:

generasacodicetagpre.

Wenn der Laufen von Vagrant auf der NFS-Montage wieder funktioniert, funktioniert wieder.

Wenn Sie nach dem APT-Get-Dist-Upgrade nach APT-Get-Upgrade aufweisen, wurde die NFS-Ordner nicht erneut montiert.

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

/ etc / network / interfaces enthielt dies:

generasacodicetagpre.

ifconfig -a hat dies zurückgegeben:

generasacodicetagpre.

Die Schnittstelle wurde nicht korrekt definiert. Nach dem Aktualisieren des / etc / network / intenfaces strotza wird die eth2 nfs montage wieder arbeitet.

Andere Tipps

Hier ist ein offener Fehler dazu und eine Lösung:

https://github.com/mitchellh/vagrant/issues/997

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

Ich habe dies unter MAC OS X 10.7.5 und CentOS 6.2 64 Bit getestet

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

Zusätzlich zu den vorhandenen Antworten hier: Vergessen Sie nicht mögliche Firewalls.Wenn Sie eine Firewall auf Ihrem Host-Computer ausführen.Der Fehler ist sehr generisch, auch wenn die Fehlermeldung das nicht anzeigt.

Wenn Sie Noobproof und / oder Icefloor verwenden, deaktivieren Sie die Firewall oder machen Sie die richtigen Ausnahmen.

auf Ubuntu 12 Host / Ubuntu 12 Gast Das Folgende funktionierte für mich mit Diskurs

generasacodicetagpre.

Note;Ich musste auch Host-IP hinzugefügt, die von Vagrant und Guest IP ermittelt wurde, die von Vagrant auf Firewall-Ausnahmen bestimmt wurde

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top