2016-12-05 4 views
2

meine synchronisierten Ordner funktionieren nicht richtig, sie sind einmal beim Start synchronisiert, aber wenn ich Änderungen an der Host-Maschine vornehmen, synchronisiert Vagrant es nicht in Echtzeit.Vagrant synchronisierte Ordner funktionieren nicht Echtzeit auf Virtualbox

Zunächst einige Details auf meinem System:

  • OS: Linux Mint 18 Sarah
  • Virtualbox Version: 5.0.24-dfsg-0ubuntu1.16.04.1
  • Vagrant Version: 1.9.0
  • vagrant-hostmanager (1.8.5)
  • vagrant-Teile (1.1.6)
  • vagrant-vbguest (0.13.0)

Bevor wir anfangen zu diskutieren, verwende ich nicht die neueste Version von Virtualbox, da es nicht im Repository ist und eine einfache vagrant up fehlschlägt.

Mein Vagrantfile:

Vagrant.configure("2") do |config| 
    config.vm.box = "centos/7" 
    config.vm.network "private_network", ip: "192.168.88.88" 
    config.vm.hostname = "my.centos.dev" 
end 

vagrant up gibt mir this.

Nun, wenn ich eine Datei auf dem Host-Rechner:

[email protected]:~/centos-vagrant $ ls 
ansible Vagrantfile 
[email protected]:~/centos-vagrant $ touch file.txt 
[email protected]:~/centos-vagrant $ ls 
ansible file.txt Vagrantfile 

und SSH zu Gast Maschine:

[email protected]:~/centos-vagrant $ vagrant ssh 
[[email protected] ~]$ ls /vagrant/ 
ansible Vagrantfile 

Wie Sie sehen können, wird die Datei nicht erstellt. Bei der Ausführung von vagrant reload wird die Synchronisierung während des Systemstarts erneut ausgeführt.

Hinweis: Ich kann keine NFS-Synchronisierung verwenden, da ich eine plattformübergreifende Bereitumgebung benötige.

Haben Sie Ideen, wie Sie die Echtzeitsynchronisierung aktivieren können?

Antwort

5

Der Besitzer der Box hat rsync standardmäßig für den Synchronisierungstyp aktiviert. Wenn Sie bei Vagrantfile der Box aussehen (in meinem Fall seinen ~/.vagrant.d/boxes/centos-VAGRANTSLASH-7/0/vmware_fusion aber verkaufen könnten wahrscheinlich unter den VirtualBox-Provider) Sie einen Vagrantfile mit Inhalt sehen

Vagrant.configure("2") do |config| 
    config.vm.synced_folder ".", "/vagrant", type: "rsync" 
end 

einfach diese Datei aus dem Feld Verzeichnis entfernen und es wird funktionieren .wenn Sie

Notiz planen zu verwenden nfs Sie können den Synchronisationstyp in Ihrem Vagrantfile

Vagrant.configure("2") do |config| 
    config.vm.box = "centos/7" 
    config.vm.network "private_network", ip: "192.168.88.88" 
    config.vm.hostname = "my.centos.dev" 
    config.vm.synced_folder ".", "/vagrant", type: "nfs" 
end 
+0

Ich versuchte ohne rsync, aber der Ordner hat auch nicht funktioniert. NFS ist keine Option, da es plattformübergreifend sein muss. – falnyr

+0

Haben Sie die vorhandene Vagrant-Datei aus dem Box-Ordner und Ihrer aktuellen Vagrant-Datei entfernt? es funktioniert für mich –

+0

Sie hatten Recht! Entfernen von Vagrantfile in ~/.vagrant.d/.. löste das Problem! Aber wenn ich init centos/7 rsync standardmäßig hinzufüge, gibt es eine Möglichkeit zu verhindern, dass box diese Zeile mit rsync erstellt? – falnyr

0

Sie können rsync-auto Befehl ändern:

vagrant rsync-auto 

Eigentlich, wenn ich habe ein Problem mit Sync, Hinzufügen type: nfs hat mir geholfen:

config.vm.synced_folder ".", "/home/ubuntu/qb-online", type: "nfs" 

Sie können mehr Informationen lesen aus der Dokumentation: https://www.vagrantup.com/docs/synced-folders/rsync.html

Verwandte Themen