もふもふ技術部

Vagrant + Chef soloでAWS EC2にRuby環境をセットアップする


前回、EC2にインスタンスを作るところまでやりました。
Vagrant経由でAWS EC2のインスタンスを生成する

続いてChef soloを使ってRubyが動く環境をセットアップしていきます。rbenv, Ruby2.1.1, Apache, Passenger, MySQLが動く環境を目指します。

Nginx + Unicornで行きたいんですがChefだとApache + Passengerの方がハマりポイントが少なかったので、簡単な方を選択。

環境
Mac OSX 10.9 Marvericks
Vagrant 1.3.5
AMI: Amazon Linux PV EBS-Backed 64bit
Chef 11.10.4

Chef, Berkshelfで組む

Berkshelfを使用します。
Berkshelfのインストールについては以前にやっているので飛ばしますね。

使用するコミュニティーcookbooksを指定してダウンロード。

前回のVagrantfileにchefのprovision周りの記述などを追記。

reloadするとtty経由ではないsudoはダメと怒られる。

Vagrantfileに下記記述を追記。
たぶんこれEC2インスタンス生成時に実行されるんじゃないかな。エラーは消えなかった。

その場合はsshして直接 /etc/sudoers を編集してしまおう。

これで先へ進める。
再度reloadしてprovisionする。

まあ一筋縄ではいかないよねー。
よく調べてみるとec2でhttps経由のgit cloneがうまくいってないみたい。実際にsshしてコマンド叩いてみると、git clone してもソースがダウンロードされてない。

どうやらこれはAmazon LinuxとVPCに関連するAWS固有の問題っぽい。
curlをダウングレードすれば通るようになる。

microインスタンスだからなのか数時間待たされた…。インストール作業をするときはもっとスペックのいいインスタンスにしないとな。

さて、sshしてインストールされているか確認。

OKですね!!

vagrant pluginコマンドでエラー

ちょと途中でひっかかったポイントですが、dotenvプラグインを使用していると、なぜかvagrant pluginコマンドを使用した際にエラーが出ます。

その場合は一時的にVagrantfileの Dotenv.load をコメントアウトしてあげればとりあえず通るようになります。プラグインを追加でインストールする際などで軽くひっかかったのでご注意を。

The following two tabs change content below.
原田 敦

原田 敦

日本CAWのエンジニア。もふもふ部の部長。得意分野はRuby on Railsを使った小規模WEBアプリケーションを高速で開発すること。週末の楽しみは一人お菓子パーティー。三度の飯より小動物をもふもふするのが好きです。