「入門 Chef Solo」 on MacOSX ではまったこと

  • 26
    Like
  • 0
    Comment
More than 1 year has passed since last update.

MacBook Pro Retina '13を購入してしまいました。CPUは2.8GHz Core i7、メモリは16G、ストレージは1T、いわゆる特盛=UltimateのUSキーモデルです。これまで使っていたモデルはMacBook Air Late2010のCore2duo、メモリ2Gのモデルでしたから、もうあらゆるスペックが別次元です。今年の春から焦らされながらも待ち続けた甲斐があったというものです。ひとまず環境設定が終わり、これから使い込んでいこうというところです。

そんな折ですが、『入門 Chef Solo INFRASTRUCTURE AS CODE』のepub/pdf版が達人出版会さんで購入できることを知り、さっそく購入しました。サンプルを実行しながら、ざっと一通り読み終えたところです。サンプルの実行にあたって数点はまった部分を記録しておきます。

1. solo.rb cookbook_pathの書き方

at "第2章 chef Soloをインストールして試したい - Hello Chef!」"

まったく大した話ではなくて、書くのは恥ずかしいくらいですが...。
solo.rbの書き方ではまりました。サンプルは以下の通り。

solo.rb
file_cache_path "/tmp/chef-solo"
cookbook_path ["/home/ec2-user/chef-repo/cookbooks"]

cookbook_path/home/ec2-userの部分をホームディレクトリに置き換えないといけないことに気づかなくてしばらく手が止まりました。次に、置き換えが必要なことに気づいてから、~/chef-repo/cookbooksとしたのですが、これもどうも動かない。

結局/Users/<username>/chef-repo/cookbooksとフルパスにしたら動くようになりました。

2. nginxのインストールがこける

at "第3章 nginxをChef Soloで立ち上げたい"

ひととおりの設定を終えてchef-soloを実行するとこけました。

ターミナルの出力結果を見ると、No version specified, and no candidate version available for nginxなるエラーが表示されている。どうもcentosのyumコマンドが問題らしい。

結論としては、yumの参照先にepelのリポジトリを追加する必要がありました。そしてこのeplの設定ですが、実は第7章にずばり「Chef-soloでEPELを有効にする方法」が書いてあります。(ちなみに「第7章に書いてあるよ」ってことが、第3章の最後に書いてあります。それ先に教えて欲しかった...。)

3. Berkshelfのインストールでこける

at "第7章 サードパーティのクックブックをBundler風に管理したい"

「Berkshelfのインストールでこける」というか、Berkshelfをインストールする途中のnokogiriのインストールでこけました。

これはOSXでは以前から発生する問題のようです。nokogiriをインストールするためには以下のように事前の準備が必要です。

brew install libxml2 libxslt
brew link libxml2 libxslt

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
tar xvfz libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure --prefix=/usr/local/Cellar/libiconv/1.13.1
make
make install

主なはまった点は以上です。それ以外はおおむねサンプルそのままで動作を確認することができました。

ちょうど新しいMacBookの環境設定メモを作ったところでしたので、本を参考にメモの内容をrecipeにしてみようと思います。