Chef ServerをCentOS6.3にインストールする

http://wiki.opscode.com/display/chef/Installing+Chef+Server+using+Chef+Solo

を参考に、Chef ServerをCentOS6.3にインストールした。一部エラーが発生しつまづいたのでメモっておきます。

なお、rubyrubygems、その他必要なライブラリはCentOS標準のものをyumでインストールし、chef-soloはgemで最新(10.16.0)をインストール済みの環境です。

遭遇したエラー

chef-solo -c /etc/chef/solo.rb -j ~/chef.json -r http://s3.amazonaws.com/chef-solo/bootstrap-latest.tar.gz

の実行で以下のエラーが出る。

Generated at Tue Oct 23 20:13:15 +0900 2012
Mixlib::ShellOut::ShellCommandFailed: service[chef-expander] (chef-server::rubygems-install line 219) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of /sbin/service chef-expander start ----
STDOUT: chef-expander を起動中: [失敗]
STDERR: /usr/lib/ruby/site_ruby/1.8/rubygems.rb:233:in `activate': can't activate eventmachine (~> 0.12.10, runtime) for ["chef-expander-10.16.0"], already activated eventmachine-1.0.0 for ["amqp-0.6.7", "chef-expander-10.16.0"] (Gem::LoadError)
        from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:249:in `activate'
        from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:248:in `each'
        from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:248:in `activate'
        from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:1082:in `gem'
        from /usr/sbin/chef-expander:18
---- End output of /sbin/service chef-expander start ----
Ran /sbin/service chef-expander start returned 1
/usr/lib/ruby/gems/1.8/gems/mixlib-shellout-1.1.0/lib/mixlib/shellout.rb:248:in `invalid!'
/usr/lib/ruby/gems/1.8/gems/mixlib-shellout-1.1.0/lib/mixlib/shellout.rb:234:in `error!'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/mixin/shell_out.rb:36:in `shell_out!'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/provider/service/init.rb:53:in `start_service'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/provider/service.rb:90:in `action_start'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/mixin/why_run.rb:63:in `call'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/mixin/why_run.rb:63:in `converge!'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/mixin/why_run.rb:61:in `each'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/mixin/why_run.rb:61:in `converge!'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/provider.rb:136:in `converge'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/provider.rb:125:in `run_action'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/resource.rb:593:in `run_action'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/runner.rb:49:in `run_action'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/runner.rb:81:in `converge'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/runner.rb:81:in `each'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/runner.rb:81:in `converge'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/resource_collection.rb:94:in `execute_each_resource'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/resource_collection/stepable_iterator.rb:116:in `call'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/resource_collection/stepable_iterator.rb:116:in `call_iterator_block'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/resource_collection.rb:92:in `execute_each_resource'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/runner.rb:80:in `converge'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/client.rb:378:in `converge'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/client.rb:420:in `do_run'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/client.rb:176:in `run'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/application.rb:140:in `run_chef_client'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/application/solo.rb:224:in `run_application'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/application/solo.rb:216:in `loop'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/application/solo.rb:216:in `run_application'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/../lib/chef/application.rb:72:in `run'
/usr/lib/ruby/gems/1.8/gems/chef-10.16.0/bin/chef-solo:25
/usr/bin/chef-solo:19:in `load'
/usr/bin/chef-solo:19

解決策

chefのメーリングリストに解決方法があり。

http://lists.opscode.com/sympa/arc/chef/2012-09/msg00333.html

eventmachine の 1.0.0をアンインストールし、chef-soloでのインストールを再実行すれば成功した。アンインストールは下記コマンドを実行し、1.0.0の削除を選ぶ。

gem uninstall eventmachine