NFS schlägt nach dem Verpacken einer Vagrant-Box fehl
-
13-12-2019 - |
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
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
- 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
- bearbeiten
/etc/udev/rules.d/70-persistent-net.rules
und lösche Zeilen für andere Schnittstellen alseth0
vagrant package
vagrant box add mypack package.box
vagrant destroy
- In
Vagrantfile
setzenconfig.vm.box
zumypack
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