Vagrantを使って検証環境を作る
VagrantでVirtualBoxだったりEC2だったりをセットアップから起動まで簡単(?)にできるっぽいのでやってみた。
途中ハマりまくったので、徒然にメモを残しておくレベルでご勘弁。
リポジトリ
https://github.com/sugilog/vagrant.local
環境
クライアント: Mac OSX Yosemite 10.10.3
- v0.4.0
- Chefを使うのにこちらのほうが便利そうだったので。
- Berkshelfもこみこみ。
EC2
手順
環境に描き上げたパッケージは予めインストール。
作業用のディレクトリを作成する。
metadata.rb
を作成する。
- Berkshelfを
init
するときに必要。 - 最低限必要なのは
name 'NAME'
のみ。
berks init
する。
Berksfile
に必要なcookbooks
を追加してインストール。
berks vendor DIRNAME
- chef.ioでレシピを探す。
- 個人で使用するくらいなら、バージョンの指定は省略して良さそう。
Vagrantfile
に設定を書き込む。
- VirtualBox向けの設定
- EC2向けの設定。
- dummy boxの指定。
- urlは
https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box
- urlは
- アクセスキーなどのEC2へのアクセスデータ
- リージョンやサブネットなど設定周りのID。
- Chefの設定
- Provisioningするときのシェルスクリプト的な。
- dummy boxの指定。
- VirtualBoxとEC2向けの設定はうまく設定すれば共通化できる。
- VirtualBoxでセットアップをテストしておけば、EC2でのセットアップを必要最小限にできる。
- Provisioningについて
- rootユーザーでなく実際に作業するときのユーザー向けの設定をする場合は、
privileged: false
にするのを忘れずに。
- rootユーザーでなく実際に作業するときのユーザー向けの設定をする場合は、
- EC2向けのアクセスキーなどの管理。
- バージョン管理の対象から外したファイルに設定を書き込んでおいた。
- 本当はアクセスキーのファイル管理は危ないので、環境変数からの読み込みがいいか。
- うまく行かなかったレシピ。
vagrant up
- まずはVirtualBox向けに。
- Chefでうまくいかないものはどんどん外したほうが良さそう。
- AWSはマネジメントコンソールを開きっぱなしにして、変なリージョンにインスタンスが立ち上がってないかとか、確認しながらが吉。
Vagrantの後
個人利用のみなので、いろいろ手動ですがご容赦を。
- EC2にscpしたいときのために、
vagrant ssh-config
を書き出しておく。 - vimのインストール。
- rbenvからのrubyインストール。
- weighttpのインストール
- ウェブアプリケーションのベンチマークを取るため。
- インストール時にはちょっと工夫。ref: http://qiita.com/saitara/items/f5a9192825026a4051fe
- などなど
参考
先に、参考にした記事とかを。