仮想マシン内にあるGitリポジトリのファイルをホストOS上のエディタで編集したいが、ホストOSから仮想マシン内のディレクトリを参照するシンボリックリンクを貼ることは出来ない。 ホストOS上にGitリポジトリを作成して、それに対して仮想マシン内からシンボリックリンクを貼ることは可能だが、仮想マシン内での実行速度が著しく低下するデメリットがあるのが問題。
rsync を使ってホストOSとゲストOS間でのファイル/ディレクトリの同期ができる(Vagrant v1.5から)。
vagrant up
、vagrant reload
、vagrant provision
、vagrant rsync
コマンドを実行すると指定したディレクトリ間での同期処理が行われる。
Vagrantfile
に以下のように記述する。
config.vm.synced_folder "./src", "/var/www/html", type: "rsync", rsync__exclude: [".git/", "vendor/"]
第一引数にホストOSに上で編集するディレクトリ、第二引数に仮想マシン内の同期先ディレクトリを指定する。
同期対象から除外したいファイル/ディレクトリは、rsync__exclude
オプションに配列形式で指定すればOK。
vagrant rsync-auto
を実行するとファイルの監視状態に入るので、ファイルを更新する度に同期処理がおこなわれる。
[http://www.1x1.jp/blog/2014/03/vagrant-rsync-synced-folder.html]