vagrantのフォルダ同期について理解する

f:id:utr066:20170518223552p:plain

vagrantfileには以下の様な記述がありますね。

  config.vm.synced_folder

これは仮想マシン上のフォルダと自分のmacにあるフォルダを同期させるものなんですね。

ちょっといまいちピンときてなかったので試してみました。

以下のように同期するディレクトリを指定。

config.vm.synced_folder "./test", "/var/www/html/"

macにあるtestというディレクトリと仮想マシン上にある/var/www/html/を同期させます。

./testというのはひとつ下の階層を示すようです。centosというディレクトリがあったらその下の階層にあるtestディレクトリ。

f:id:utr066:20170518220929p:plain

ここに仮想マシンで作ったディレクトリを同期させます。

では、仮想マシン上で/var/www/htmlまで移動しましょう。

vagrant up
vagrant ssh
[vagrant@localhost ~]$ cd /var/www/html/

この下のものが同期される記述です。

[vagrant@localhost html]$ touch index.html

上記のように記述し、本当に同期されるか確かめる。 同期されているならローカルにあるcantos/testの中にindex.htmlがあるはずです。 f:id:utr066:20170518221526p:plain

ありますね。 これで仮想マシンをいじってローカルに指定したフォルダに同期されることはわかりました。

では、このファイルをローカルでいじったらどうなるのでしょう。いじります。 ローカル f:id:utr066:20170518221633p:plain

仮想マシン上 f:id:utr066:20170518221735p:plain

ばっちり同期されていますね。

仮想マシン上にrubyやphpの環境を作って、それをターミナルでしか編集できないのは変だなあ・・・ 上手く同期できてないのかなあ・・・とか思いながら試してみました。 同期することができてよかったです。