のぶLab.

流しのソフトウェアエンジニアの雑記帳. Android, Scala, Clojure, Ruby on Railsなど

Vagrant+ChefでAWS EC2にUbuntu環境を構築

このサイトを参考にVagrantでEC2をvagrant upしてみます

Vagrant 1.1 で EC2 を vagrant up - naoyaのはてなダイアリー
http://d.hatena.ne.jp/naoya/20130315/1363340698

Vagrantで AWS EC2インスタンスRHEL5.5)を作成する - Qiita [キータ]
http://qiita.com/Humangas/items/2997cc6701aa90687c04

Vagrant + AWS + Chef でサーバ構築自動化 - Develop with pleasure!
http://techmedia-think.hatenablog.com/entry/2013/06/27/211812


0. vagrantはBoxenを使ってインストール済み

ここは割愛します

1.vagrant作業用ディレクトリの作成

mkdir vagrant

2.vagrant-aswプラグインのインストール

vagrant plugin install vagrant-aws

3.vagrant-omnibusプラグインのインストール

vagrant plugin install vagrant-omnibus

4.berkshelfのインストール

sudo gem install berkshelf --pre

ここではver3.xのberkshelfをインストールします
berkshelfでcookbookを管理します

5.berks cookbookでプロジェクト作成

berks cookbook aws_test

で"aws_test"ディレクトリの中にVagrantfileやBerksfileなどが作成される

6.Berksfileにインストールしたいものを記述

source "http://api.berkshelf.com/"

cookbook 'apt'
cookbook 'git'
cookbook 'nginx'

※berkshelf 3.xからは記法が変わり、source :opscode ではなく source "http://api.berkshelf.com/" と記述します。

7.berks vendor cookbooksで指定したcookbookを"cookbooks"ディレクトリに配置

Bagrantfileのあるディレクトリで

berks vendor cookbooks

8.Vagrantfileを編集

AWSの設定やprovisioningの設定などいろいろ記述
nginxとgitをインストールする場合はこんな感じです

Vagrantfile for EC2 Ubuntu instance.

9.起動

vagrant up --provider=aws

デバッグログを出力したい場合はvagrant upの前に"export VAGRANT_LOG=debug"を実行しておく