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

May 02, 2013

はじめに感想

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

インストール

Requirements

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 のアカウント必要だったかも。

参考リンク


Profile picture

Webのフロントエンドからバックエンド、プロトタイピングからプロダクションまで。定額の開発サービスも。詳しくはAboutページで。