Vagrant

Vagrant+Berkshelfでコマンド一発、仮想環境構築

はじめに感想

もう何週遅れかわかりますが、自分でもやってみたのでポスト。ローカルマシンにVirtualBoxなどのVMでの構築を自動化したい人のための記事です。ただ、Chefでのやり方多様過ぎて初心者にはどの方法が良いのかわからなかったので、この投稿が僕と同じChef童貞の役に立てればと思ってます。いずれはAnsibleも触ってみたい。

インストール

Requirements

Vagrantはパッケージからインストールすること。理由は以下のとおり。

Gem Install?
Vagrant 1.0.x had the option to be installed as a RubyGem. This installation method has been removed for installers and packages only.

berkshelfはCookbookの依存関係管理ツール

$ gem install berkshelf

vagrant-berkshelfはVagrantのberkshelfプラグインでローカルにVM立てる場合はKnife-soloより便利

$ vagrant plugin install vagrant-berkshelf

Cookbookを作る

まずは適当な場所にCookbookのテンプレートを生成

# hogehogeはお好きなプロジェクト名で
$ berks cookbook hogehoge

今回はnodeとgitをインストールしてみます。
編集するのはBerksfileとVagrantfile。

Berksfile

site :opscode

metadata
cookbook 'git'
cookbook 'nodejs'

Vagrantfile

# ファイルの最後の方を編集
chef.run_list = [
"recipe[git]",
"recipe[nodejs]"
]

いよいよCookbookを生成します。

$ berks install --path cookbooks

あとはVagrantを起動するだけで同時にレシピが実行されます。

$ vagrant up
# しばらくして構成が終わったらSSHでログイン
$ vagrant ssh

補足

  • ときどき構築に失敗する事がある。その時はホストマシンを再起動させるとちゃんと構築できる。原因がいまいちわからないので、どなたか教えてやってください。
  • あたり前だけどGUIのVirtualBoxからも管理できる。Vagrantが便利すぎて忘れてた。
  • メモリ4GBのMacbook Airだとキツイ気がする。
  • もしかしたらOpscodeのアカウント必要だったかも。

参考リンク

Comments