久しぶりにAmazon EC2を使いたくなって、最新のAMIからインスタンスを立ち上げました。AMIは、RightScaleのrightscale-us-east/CentOS_5.4_i386_v5.2.0_Alpha.manifest.xmlです。幾つかの必要なアプリケーションをインストール完了した状態で、イメージを固めてS3に保存しようとec2-bundle-volコマンドをたたいた所、下記のようなエラーが出ました。
/home/ec2/lib/ec2/amitools/crypto.rb:13:in `require': no such file to load -- openssl (LoadError)
from /home/ec2/lib/ec2/amitools/crypto.rb:13
from /home/ec2/lib/ec2/amitools/manifestv20071010.rb:11:in `require'
from /home/ec2/lib/ec2/amitools/manifestv20071010.rb:11
from /home/ec2/lib/ec2/amitools/bundle.rb:13:in `require'
from /home/ec2/lib/ec2/amitools/bundle.rb:13
from /home/ec2/lib/ec2/amitools/bundlevol.rb:11:in `require'
from /home/ec2/lib/ec2/amitools/bundlevol.rb:11
心当たりはありありです。RPMのrubyのモジュールが古かったので、ソースから落として自前でコンパイルしました。その時、opensslのコンフィグとか入れていなかったのが原因でしょう。ということで、さっくりとモジュールの追加。
まずは、openssl関係が入っているか?
# yum list installed | grep openssl openssl.i386 0.9.8e-12.el5 installed
opensslは入っているようですが、openssl-develはないようです。
# yum install openssl-devel
インストール後に、rubyのソースディレクトリへ移動してconfigu&make
# cd /root/src/ruby-1.8.7-p174/ext/openssl/ # ruby extconf.rb # make # make install
その後、ec2-bundle-volは動くようになりました。