MacのRubyをアップデートして、knife-solo入れたった

f:id:tmknom:20140322170825p:plain

Chef-Soloをやるにあたって、とりあえずknife-soloを入れとけって、「入門Chef Solo」に書いてあったので、入れてみることにしたよ。

knife-soloのインストールを試みる

$ sudo gem install knife-solo
ERROR:  Error installing knife-solo:
    mime-types requires Ruby version >= 1.9.2.

いきなり玉砕(笑)

Rubyのバージョンを1.9.2以上にしろって怒られた。

バージョンを確認してみる。

$ ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]

うむ、確かに古い。

rbenvのインストール

rbenvを入れると、Rubyのバージョンを切り替えて使えるようになるので、まずコイツからインストールする。

$ brew install rbenv
$ brew install ruby-build
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

で、rbenvでインストール可能なRubyのバージョンを調べてみる。

$ rbenv install -l
...
  2.0.0-rc2
  2.1.0
  2.1.0-dev

ずらずら出てくるけど、2.1.0を入れることにした。

knife-soloが目的なら1.9.2以上なら、どれでも大丈夫だと思う。

Ruby本体のインストール

インストールするバージョンを決めたので早速入れてみる。

$ rbenv install 2.1.0
$ rbenv rehash
$ rbenv global 2.1.0

では、確認。

$ ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin12.0]

OK、ちゃんと入ったようだ。

ついでにgemをupdateしておく。

$ sudo gem update

knife-soloをインストール

準備が整ったのでお目当てのknife-soloをインストールする。

$ sudo gem install knife-solo
$ rbenv rehash

今度はちゃんと入った。

動作確認をしてみよう。

$ knife solo init chef-repo
WARNING: No knife configuration file found
Creating kitchen...
Creating knife.rb in kitchen...
Creating cupboards...

なんかWarningが表示されたが、とりあえず動いてはいそうだ。

$ tree
.
└── chef-repo
    ├── cookbooks
    ├── data_bags
    ├── environments
    ├── nodes
    ├── roles
    └── site-cookbooks

tree コマンドで確認してみると、ちゃんとディレクトリが作成されている。

ちゃんと動いていることが確認できた。これでインストール完了だ。

ちなみに、さっきのWarningは

$ knife configure

とすることで、解消できる。

設定は全てデフォルトでOKなので、色々聞かれるがひたすらEnterを押せばOKだ。