2010年4月14日水曜日

"CentOS 5.4 AMI 64bit版"の作成

スズキです。

久しぶりのAWSネタです。

必要に迫られ、64bit版CentOSのAMIを作成しました。

まずはイメージファイルの作成ですが、基本的に下記の手順です。
http://blog.suz-lab.com/2009/04/centos53ami.html

ただし、"fstab"と"rc.local"は下記のようにしています。

--------【fstab】--------
/dev/sda1 / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
/dev/sda3 swap swap defaults 0 0
--------

--------【rc.local】--------
...
PUB_KEY_URI=http://169.254.169.254/1.0/meta-data/public-keys/0/openssh-key
PUB_KEY_FROM_HTTP=/tmp/openssh_id.pub
PUB_KEY_FROM_EPHEMERAL=/mnt/openssh_id.pub
ROOT_AUTHORIZED_KEYS=/root/.ssh/authorized_keys
if [ ! -d /root/.ssh ] ; then
  mkdir -p /root/.ssh
  chmod 700 /root/.ssh
fi
curl --retry 3 --retry-delay 0 --silent --fail -o $PUB_KEY_FROM_HTTP
$PUB_KEY_URI
if [ $? -eq 0 -a -e $PUB_KEY_FROM_HTTP ] ; then
  if ! grep -q -f $PUB_KEY_FROM_HTTP $ROOT_AUTHORIZED_KEYS
  then
    cat $PUB_KEY_FROM_HTTP >> $ROOT_AUTHORIZED_KEYS
    echo "New key added to authrozied keys file from parameters"|logger -t "ec2"
  fi
  chmod 600 $ROOT_AUTHORIZED_KEYS
  rm -f $PUB_KEY_FROM_HTTP
elif [ -e $PUB_KEY_FROM_EPHEMERAL ] ; then
  if ! grep -q -f $PUB_KEY_FROM_EPHEMERAL $ROOT_AUTHORIZED_KEYS
  then
    cat $PUB_KEY_FROM_EPHEMERAL >> $ROOT_AUTHORIZED_KEYS
    echo "New key added to authrozied keys file from ephemeral
store"|logger -t "ec2"
  fi
  chmod 600 $ROOT_AUTHORIZED_KEYS
  chmod 600 $PUB_KEY_FROM_EPHEMERAL
fi
if [ -e /mnt/openssh_id.pub ] ; then
  if ! grep -q -f /mnt/openssh_id.pub /root/.ssh/authorized_keys
  then
    cat /mnt/openssh_id.pub >> /root/.ssh/authorized_keys
    echo "New key added to authrozied keys file from ephemeral
store"|logger -t "ec2"
  fi
  chmod 600 /root/.ssh/authorized_keys
fi
...
--------

また、"rc.local"では"curl"を利用しているので、下記のようにイメージファイルに
"curl"のインストールも忘れずにしなければいけません...

# yum --installroot=/mnt/suz-lab_ebs_centos-core-x86_64-5.4.6 -y install curl
※ たぶん、5.4では、"-c xxx.conf"いらないと思います。

イメージファイルができたら、適当なEC2インスタンス(念のため64bitのCentOSです)
立ち上げて、下記の手順(イメージファイル作成後から)です。
http://blog.suz-lab.com/2010/01/migrating-centos-s3-based-ami-to-ebs.html

まあ、

EBSマウントして、下記のようにイメージをコピーして、

dd if=/mnt/suz-lab_ebs_centos-core-x86_64-5.4.6.img of=/dev/sdc1

EBSのスナップショットとって、下記のようにスナップショットをAMI登録です。

ec2reg \
-K /mnt/pk.pem \
-C /mnt/cert.pem \
--region us-west-1 \
-s snap-xxxxxxxx \
-a x86_64 \
-d suz-lab_ebs_centos-core-x86_64-5.4.6 \
-n suz-lab_ebs_centos-core-x86_64-5.4.6

問題なければ、"AWS Management Console"で公開です。

ちゃんとリリースアナウンスしよう...

--------
http://www.suz-lab.com

0 コメント: