Vagrant: ホストOSのファイルをサーバーに送る方法

Vagrantシェルスクリプトを使ったプロビジョニング。

http://docs.vagrantup.com/v2/provisioning/shell.html

vagrant up で作成したサーバーに、特定のファイルを送信したいという時にどうしたらいいのか?「upload_path」を使えばいいのかなと思った。

しかしこれはちょっと勘違い。upload_path は作成したサーバー内のパスを指しており、デフォルトでは「/tmp/vagrant-shell」を見ている。ここを「cat」してみると、「config.vm.provision "shell"」で指定した、シェルスクリプトがそのまま転送されていた。ふむふむ。

では、ファイル同期はどうするのか?

答えはこれだった。

http://docs.vagrantup.com/v2/synced-folders/index.html

Vagrant」で立ち上げたサーバーには、「/vagrant/」というディレクトリが作成される。パーミッションは「drwxr-xr-x 1 vagrant vagrant」。ここには、ホストOSの「Vagrantfile」が存在するディレクトリの内容が、すべて転送されていた。(未調査:もしかして VM ファイル共有かもしれない)

Vagrantfile と同じディレクトリ内に、共有したくないものはあまりおかないほうが良さそうだ。