Vagrantをprovisionしたときにディレクトリを作る

メモ:

ステージング・本番ではcapistranoでデプロイするけど、 ローカルのVagrantではそんなことしないので、 pidを格納するディレクトリが無くて困った。
(nginxで見に行く先を変えればいいけど、そんな部分のchefをいじるのも面倒。。。)

んで、Vagrantfileのsynced_folderとして、テキトーなディレクトリを指定したけど、 sockファイルを作ろうとして、エラーになった。

http://stackoverflow.com/questions/16388342/unicorn-fails-to-start-on-vagrant-box-due-to-errnoeperm
synced_folderしたディレクトリには作れないっぽい。

どうせなので、provision時のshellを使ってみた。

  $script = <<SCRIPT
mkdir -p /srv/web/shared/pids
chown vagrant:vagrant -R /srv/web/shared
SCRIPT
  config.vm.provision "shell", inline: $script

単純にmkdirすると、root権限で作られたので、chownでログインユーザのものに変更。

無事、sockファイルが作れて、nginx -> unicornでページが表示された。