自由課題

学んだり、考えたり、試したりしたこと。

Ruby on Railsをすぐに試せるVagrant環境

Ruby on RailsでWebアプリを作るときには、当たりまえですがRuby on Railsの環境を準備する必要があります。慣れの問題といえばそうなのですが、これが結構面倒くさい。

しかし、ちょっとググってみたところだとVagrantをOSのセットアップの自動化手段として使っている方が多いみたいで、Rails用のProvisioningまで含めてセットアップしている例は(日本語では)あまりみられませんでした。

というわけで、Vagrantを試してみるということも含めて、セットアップ後に'rails new ...'とすぐに試せるところまでの設定をVagrantを使ってやってみました。ちなみにpuppetとかchefは使わずに、シェルスクリプトで書いてます。


GitHubレポジトリは以下です。
https://github.com/kimito/vagrant_try_rails

vagrant up

した後に

vagrant ssh

して仮想マシンSSH接続するとすぐにRailsが使えます。

シェルスクリプトの実行ユーザをrootではなく一般ユーザにする方法がよくわからずにしばらく格闘しました。答えはここに書いてありました。
https://github.com/mitchellh/vagrant/pull/1370
config.vm.provision :shellを使用するときに:privileged => falseを指定するとvagrantユーザとしてスクリプトが実行されます。

ちなみにこのような環境は、Ruby on Railsそのものの開発環境を含めてGitHub上にはいくつかあるようです。

追記: OSはCentOSの6.5がベースで、railsのインストール時にメモリ不足でエラーになるのでメモリは1280MBにしています。rails重い...。また、アプリを立ち上げた時(rails server ...)に使用するデフォルトポートの3000番はホストOS側にフォワーディングしてあるので、ホストOS側でhttp://localhost:3000/に接続するとアプリに接続できます。