hello-world.jp.net
webエンジニアのメモ。とりあえずやってみる。

[Mac]chef-soloとBerkshelfを使ってNode.jsの環境構築(MongoDB, Redis)

公開日時

今回はchef-soloとBerkshelfを使ってNode.jsの環境構築をやってみた。

併せてMongoDB, Redisもインストールしてみた。

Berkshelfとは

入門Chef Solo』より引用

Opscode CommunityのクックブックはRubyで言うところのgemのようなものです。そしてgemに同じく、複数のクックブックを扱うようになってくると管理がやや煩雑になってきます。

gemの場合Bundlerを使うことで、それらの問題を解決することができますね。もはやRubyistにとってBundlerは必要不可欠のツールになっています。

ChefのサードパーティのクックブックをBundlerのように管理したい、というときに使えるのがBerkshelfというツールです。

前提条件

  • chef-soloインストール済み

  • vagrantインストール済み

上記に関しては [Mac]『入門Chef Solo』を読んで試してみた を参照

GemFileにBerkshelfを追加

cd ~/vagrant/my-chef-repo
vi Gemfile

source 'https://rubygems.org'

gem 'knife-solo', '0.3.0.pre3'
gem 'berkshelf'   # 追加

Berkshelfインストール

bundle install --path vendor/bundle/ --binstubs

Berkshelfにcookbook追加

MongoDBとRedisに関してはopscodeではなく、githubに公開されているcookbookをお借りした

vi Berkshelf

site :opscode

cookbook 'nodejs'
cookbook 'mongodb', git:'git://github.com/edelight/chef-mongodb.git'
cookbook 'redis', git:'git://github.com/kenjiskywalker/cookbooks-redis.git'

cookbookをインストール

bundle exec berks install --path vendor/cookbooks

knife.rb更新

cd ~/vagrant/my-chef-repo/chef-repo
vi .chef/knife.rb

cookbook_path ["cookbooks", "site-cookbooks", "../vendor/cookbooks"] # "../vendor/cookbooks" を追加
role_path     "roles"
data_bag_path "data_bags"
#encrypted_data_bag_secret "data_bag_key"
knife[:solo_path] = '/tmp/chef-solo'

jsonにrecipe追加

vi nodes/vagrant.json
{
  "run_list":[
    "recipe[nodejs]",
    "recipe[mongodb::10gen_repo]",
    "recipe[mongodb]",
    "recipe[redis]"
  ]
}

vagrantにrecipeをインストール

./bin/knife solo cook vagrant

# knife solo 0.3の場合は-oオプションをつけることで個別にrecipeをインストールすることもできる
# ./bin/knife solo cook vagrant -o mongodb
# ./bin/knife solo cook vagrant -o redis

recipeが正しくインストールができているか確認

ssh vagrant

node -v
v0.10.2

mongo --version
MongoDB shell version: 2.4.2

redis-server -v
Redis server version 2.4.16 (00000000:0)

これでNode.jsの環境構築が一通りできた

参考URL


Related #CentOS

Vagrant upで"The Guest Additions on This VM Do Not Match the Install Version of VirtualBox!"と言われた時の対策(CentOS6.4)

久しぶりにvagrantを使っていたらvagrant up時に以下の警告が出ていました。

CentOS6.3にmysql5.5をインストール

CentOS6.3はデフォルトのyumだとmysql5.1がインストールされますが、mysql5.5を使いたかったので5.1をアンインストールして5.5をインストールし直しました。

CentOS6.3でyumを使ってphp5.4からphp5.3にダウングレード

諸事情によりCentOS6.3のサーバにインストールされたphp5.4をphp5.3にダウングレードする必要があったので、対応方法をメモしておきます。

CentOS6.4にOpenCV2.4.6.1をインストール

顔認識がしてみたくなったので調べてみたところ、「ruby-openc」というgemが公開されていたので、まずはOpenCVをインストールしてみました。