スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

EC2用に自分のOSイメージを作る(CentOS 5.2編)

今回はEC2のためにOSのイメージを用意する方法を解説します。

前もって言うとちょっと大変です
やはり他の人が作ったものを使うのは結構怖いですよね
EC2はスクラッチで作ったOSのイメージをアップロードすることが出来ます。

1.rubyをインストールする
yum install -y ruby

2.amiツールをインストールする
AMIツールをダウンロードする
# rpm -ivh ec2-ami-tools.noarch.rpm

3.OSをインストールするディスクスペースを確保する
# dd if=/dev/zero of=ec2-centos5.img bs=1M count=8096
この場合、8GB確保しています

4.ディススペースにファイルシステムを作ります
# mke2fs -F -j ec2-centos5.img

5.ファイルシステムをマウントします
# mount -o loop ec2-centos5.img /mnt/ec2-centos5-fs

6.ゲストOSを入れる

6.1 仮想デバイスを用意する
# mkdir /mnt/ec2-fs/dev
# /sbin/MAKEDEV -d /mnt/ec2-centos5-fs/dev -x console
# /sbin/MAKEDEV -d /mnt/ec2-centos5-fs/dev -x null
# /sbin/MAKEDEV -d /mnt/ec2-centos5-fs/dev -x zero

6.2 Yumグループインストールの設定
yum-xen.confを以下の内容で作る

[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
exclude=*-debuginfo
gpgcheck=0
obsoletes=1
reposdir=/dev/null

[base]
name=CentOS-5.2 - Base
mirrorlist=http://mirrorlist.centos.org/?release=5.2&arch=i386&repo=os
enabled=1

[updates-released]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=5.2&arch=i386&repo=updates
enabled=1

6.3 ディスク構成を作る
# mkdir /mnt/ec2-centos5-fs/etc
# vi /mnt/ec2-centos5-fs/etc/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

6.4 プロセスを作ってホストと共有する
# mkdir /mnt/ec2-centos5-fs/proc
# mount -t proc none /mnt/ec2-centos5-fs/proc

6.5 OSをインストールする
yum -c yum-xen.conf --installroot=/mnt/ec2-centos5-fs -y groupinstall Core
yum -c yum-xen.conf --installroot=/mnt/ec2-centos5-fs -y groupinstall Base

注意:
yumのインストール記録がないというエラーが、多少のエラーが出ますが心配ないです

7 仕上げを行う

7.1 ネットワークの設定
/mnt/ec2-centos5-fs/etc/sysconfig/network-scripts/ifcfg-eth0を以下のように作成

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
USERCTL=yes
PEERDNS=yes
IPV6INIT=no

/mnt/ec2-centos5-fs/etc/sysconfig/networkを以下のように作成

NETWORKING=yes


7.2 ファイルシステムを仕上げる

/mnt/ec2-centos5-fs/etc/fstabに追記する

/dev/sda2 /mnt ext3 defaults 0 0
/dev/sda3 swap swap defaults 0 0


8 sshを設定する

8.1 /mnt/ec2-centos5-fs/etc/rc.d/rc.localを以下のように作成

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
/usr/local/sbin/get-credentials.sh

8.2 /mnt/ec2-centos5-fs/usr/local/sbin/get-credentials.shを以下のように作成

#!/bin/bash

# Retreive the credentials from relevant sources.

# Fetch any credentials presented at launch time and add them to
# root's public keys

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



# We need somewhere to put the keys.
if [ ! -d /root/.ssh ] ; then
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi

# Fetch credentials...

# First try http
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
# Try back to ephemeral store if http failed.
# NOTE: This usage is deprecated and will be removed in the future
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

# chmod 755 /mnt/ec2-centos5-fs/usr/local/sbin/get-credentials.sh

9 マウントを解除する
# umount /mnt/ec2-centos5-fs/proc
# umount -d /mnt/ec2-centos5-fs

マウントが解除出来ない場合は再起動して下さい

10.最後に
これで動くOSのイメージの作成は完了ですが、このままだとこのイメージのバックアップをすることが出来ません。そのやり方は次回で解説します
スポンサーサイト

テーマ : インターネットサービス - ジャンル : コンピュータ

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック


この記事にトラックバックする(FC2ブログユーザー) URL

プロフィール

未来探偵コナン

Author:未来探偵コナン
FC2ブログへようこそ!

カテゴリ
最新記事
最新コメント
最新トラックバック
月別アーカイブ
エンジニア推薦商品

こいつはかなり期待出来るゲームです。とにかく世界観がすごいです


魔王になってダンジョンに攻めて来る勇者をあの手この手で撃退するゲーム(モンハンよりはまります)


真のエンジニアは小物で差を付ける?会話が始まりそうなアイテムです


やっぱり最強は少佐の声の暗闇の雲でしょ by タチコマ


ガンダム型のUSBメモリ(熱いぜ)


綾波レイ型のUSBメモリ(コイツも熱いぜ)


ルパン型のUSBメモリ(いつ見てもカッコイイぜ)


ウルトラマン型のUSBメモリ(存在自体がユニバーサルデザイン)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。