ようへいの日々精進XP

よかろうもん

test-kitchen + LXC 諸々メモ(1)

はじめに

test-kitchenLXC でお手軽 cookbook テスト環境を構築してみたものの色々とハマっているので整理するつもりでメモ。

尚、試した環境としては下記の通り。

環境(1)

  • Ubuntu 13.10
  • LXC 1.0.0.alpha2
  • test-kitchen 1.0.0.beta.4
  • berkshelf 2.0.10

環境(2)

  • Ubuntu 13.04
  • LXC 0.9.0
  • test-kitchen 1.0.0.beta.4
  • berkshelf 2.0.10

以下はあくまでも手元で試した結果なので、試す環境によっては異なる結果も予想されるのであくまでも参考程度で...

メモ

動くコンテナ、動かないコンテナ

今のところちゃんと cookbook のテストが出来るコンテナ OS と出来ないコンテナ OS が存在する。試したところ以下の通りとなった。

コンテナの OS 結果 備考
Ubuntu 13.10
Ubuntu 13.04
Ubuntu 12.04
Debian 6.0(Squeeze) × Could not determine IP address for LXC container のエラー
Debian 7.0(Wheezy) × Could not determine IP address for LXC container のエラー
CentOS 6.4 × Could not determine IP address for LXC container のエラー

上記のように Could not determine IP address for LXC container というエラーが出てしまい bundle exec kitchen create でコケる...orz

berkshelf とか test-kitchen とか nokogiri とか...

berkshelf が load 出来ない...

bundle exec kitchen setup を実行すると以下のようなエラーとなってしまった。

E, [2013-11-09T22:22:24.995597 #22788] ERROR -- Kitchen: ------Exception-------
E, [2013-11-09T22:22:24.995645 #22788] ERROR -- Kitchen: Class: Kitchen::ActionFailed
E, [2013-11-09T22:22:24.995676 #22788] ERROR -- Kitchen: Message: Failed to complete #converge action: [Could not load Berkshelf]
E, [2013-11-09T22:22:24.995704 #22788] ERROR -- Kitchen: ---Nested Exception---
E, [2013-11-09T22:22:24.995739 #22788] ERROR -- Kitchen: Class: Kitchen::UserError
E, [2013-11-09T22:22:24.995764 #22788] ERROR -- Kitchen: Message: Could not load Berkshelf
E, [2013-11-09T22:22:24.995789 #22788] ERROR -- Kitchen: ------Backtrace-------

対処としては berkshelf をバージョンアップ。

gem 'berkshelf', '~> 2.0'

として bundle install する。

test-kitchen をバージョンアップ

ついでに test-kitchenv.1.0.0.beta.4リリースされていたのでそちらへバージョンアップしてみることにした。

gem 'test-kitchen', '1.0.0.beta.4'

同じように bundle install する。

今度は nokogiri だよ、おっかさん

test-kitchen をバージョンアップしたところ以下のようなメッセージに変わる。

E, [2013-11-09T22:12:10.875510 #20868] ERROR -- default-ubuntu-master: ------Exception-------
E, [2013-11-09T22:12:10.875550 #20868] ERROR -- default-ubuntu-master: Class: Kitchen::UserError
E, [2013-11-09T22:12:10.875581 #20868] ERROR -- default-ubuntu-master: Message: Could not load Berkshelf
E, [2013-11-09T22:12:10.875610 #20868] ERROR -- default-ubuntu-master: ---Nested Exception---
E, [2013-11-09T22:12:10.875785 #20868] ERROR -- default-ubuntu-master: Class: LoadError
E, [2013-11-09T22:12:10.875824 #20868] ERROR -- default-ubuntu-master: Message: libexslt.so.0: cannot open shared object file: No such file or directory - /var/lib/gems/1.9.1/gems/nokogiri-1.6.0/lib/nokogiri/nokogiri.so

/var/lib/gems/1.9.1/gems/nokogiri-1.6.0/lib/nokogiri/nokogiri.so このファイル自体は存在しているので nokogiri 自体のインストールはできているはずだが...改めて nokogiri をインストールしてみる。

sudo gem install nokogiri --no-ri --no-rdoc -V

インストールのログを見ていると関係するライブラリをリンクして改めて make して make install しているようなので nokogiri は一筋縄ではいかない gem なのかもしれない...。

nokogiri を再インストール後は bundle exec kitchen setup が通るようになりましたとさ...


最後に

  • Ubuntu 系のコンテナしか現状使えないのは悔しい
  • test-kitchen の環境を整えるのが辛い...