「シェル」プロビジョニングを行うときは、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/ ./
答え3
ゲストとホストに ssh がある場合は、これを使用してscp
双方向にデータを転送できます。