Kopieren Sie Dateien zum ersten Mal mit rsync unter Verwendung von Vagrant vom Gast zum Host

Kopieren Sie Dateien zum ersten Mal mit rsync unter Verwendung von Vagrant vom Gast zum Host

Wenn Sie vagrant upeine "Shell"-Bereitstellung durchführen, laden Sie einige Dateien in den synchronisierten Ordner herunter. Diese Dateien sollten auch in den synchronisierten Ordner des Hostcomputers kopiert werden, damit das Projekt vom Host aus verfügbar ist. Wenn Sie denNFSzu synchronisieren, dies geschieht automatisch, aber nicht mitrsyncGibt es eine Möglichkeit, dies mit rsync und Vagrant zu erreichen? Dies ist die Konfiguration des synchronisierten Ordners:

config.vm.synced_folder "./", "/vagrant", type: "rsync", owner: "www-data",
rsync__exclude: [".git", "project1/app/cache", "project1/app/logs"],
rsync__args: ["--no-owner", "--verbose", "--archive", "-z", "--copy-links"]

Antwort1

Entsprechend derDokumentation, rsync ist in Vagrant nur eine Einwegsynchronisierung. Das bedeutet, dass Sie entweder einen anderen Mechanismus wie NFS für eine Rücksynchronisierung vom Gast zum Host verwenden müssen oder dass Sie einen eigenen Rücksynchronisierungsmechanismus implementieren müssen, z. B. indem Sie einen rsync-Befehl manuell auf dem Host ausführen.

Man könnte eine rsync-back-Erweiterung (Plugin) für Vagrant schreiben. Mir ist kein vorhandenes Plugin bekannt, mit dem sich das erreichen lässt.

vboxsfWenn die Virtualbox-Gasterweiterungen in Ihrem Gast installiert sind, möchten Sie sich möglicherweise auch den Mechanismus für freigegebene Ordner von Virtualbox als Transport für den synchronisierten Ordner von Varant anstelle von NFS und Rsync ansehen .

Antwort2

Dies sind die Befehle zum Synchronisieren vom Gast zum Host. Sie sollten aus dem Ordner ausgeführt werden, in dem Sie Folgendes ausgeführt haben vagrant up:

$ vagrant ssh-config > ssh_config
$ rsync -avH -e "ssh -F ./ssh_config" default:/vagrant/ ./

Siehe auchdiese Antwort habe ich auf stackoverflow geschrieben.

Antwort3

Wenn Ihr Gast und Host über SSH verfügen, können Sie es scpzur bidirektionalen Datenübertragung verwenden.

verwandte Informationen