2009年4月20日月曜日

AMIは「chroot」して確認!

スズキです。

AMIの登録も終わり、インスタンスを起動し、
http://suz-lab.blogspot.com/2009/04/centos53ami_19.html
さあ、sshでログイン、というところで、どうしてもログインがはじかれ、
解決に、かなりの時間を費やしてしまいました。

問題は、下記を参考に作成した、"get-credentials.sh"でした。
http://vkgtaro.jp/2008/11/10/amazon_ec2_centos5

このスクリプトは、"ec2-add-keypair"で作った公開鍵を取得するもので、
起動時に実行されるよう、"rc.local"から呼び出されるようにしているものです。

そして、このスクリプト中に、"curl"コマンドが使われており、
BaseでのインストールのみのCentOSには、このコマンドが無く、そこでエラーになっていました。

スクリプトは実際に起動して動作確認はしたのですが、イメージを作成しているOS(CentOS)には
"curl"が導入されており、そこ時点での発見には至りませんでした…

なので、この問題を回避するには下記のように"chroot"でマウントしたイメージのファイルシステムを
ルートにした状態で上記のコマンドをテストする必要があります。

# chroot /mnt/fs-centos-base-5.3 /usr/local/sbin/get-credentials.sh

当然この時点で"curl"が無い旨のエラーが出るはずなので、下記のようにインストールすることで、
sshでログインできるイメージに仕上げることができます。

# yum -c yum-centos-base-5.3.conf
--installroot=/mnt/fs-centos-base-5.3 install curl

次は、ようやく、AMIの公開だ。(長かった…)

参考サイト - http://www.diigo.com/user/suz-lab/00000007
--
http://suz-lab.blogspot.com/

0 コメント: