Vagrant を使って rsync で初めてゲストからホストにファイルをコピーする

Vagrant を使って rsync で初めてゲストからホストにファイルをコピーする

「シェル」プロビジョニングを行うときは、vagrant up同期されたフォルダにいくつかのファイルをダウンロードします。これらのファイルは、プロジェクトがホストから利用できるように、ホストマシンの同期されたフォルダにもコピーする必要があります。NFS同期は自動的に行われますが、rsyncVagrant で rsync を使用してこれを実現する方法はありますか? 同期されたフォルダーの構成は次のとおりです。

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"]

答え1

によるドキュメンテーションただし、rsync は Vagrant では一方向の同期のみです。つまり、ゲストからホストへの同期には nfs などの別のメカニズムを使用するか、ホスト上で rsync コマンドを手動で実行するなど、独自の同期メカニズムを実装する必要があります。

Vagrant に rsync-back 拡張機能 (プラグイン) を作成することもできます。これを実現する既存のプラグインについては知りません。

vboxsfゲストに VirtualBox ゲスト拡張機能がインストールされている場合は、 NFS や rsync の代わりに、Varant の同期フォルダーのトランスポートとしてVirtualBox 共有フォルダー メカニズムを検討することもできます。

答え2

これらはゲストからホストに同期するためのコマンドであり、実行したフォルダーから実行する必要がありますvagrant up

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

参照この回答は私がstackoverflowに書いたものです

答え3

ゲストとホストに ssh がある場合は、これを使用してscp双方向にデータを転送できます。

関連情報