このエントリーをはてなブックマークに追加

2.1.1.4.4.3.3. centos6.2

2.1.1.4.4.3.3.1. テンプレート作成

インストールするOSのテンプレートを作成します。
パッケージのインストールやrootのパスワードは適宜変更して下さい。
パスワードが必要ない場合はrootpwの部分をコメントもしくは削除してください。
公開鍵認証(ssh -i mykey root@10.0.0.2みたいな方法)でのみしかログインしない場合は必要ないでしょう。
AMIなどにするつもりがなければpublic keyの部分も必要ないでしょう。
<!– <command name=’update-all’>yum -y update</command> –>
上記のコメントを外せばOSは最新版ってしまいますので注意してください。
cloud-initをインストールしておけば便利なのでテンプレートに追加してますが必要なければコメントしてください。
$ cat << 'TEMPLATE' | sudo tee /etc/oz/centos6.2.tdl > /dev/null
<template>
 <name>centos6.2_x86_64</name>
 <description>My CentOS 6.2 x86_64 template</description>
 <os>
  <name>CentOS-6</name>
  <version>2</version>
  <arch>x86_64</arch>
<!--  <install type='iso'> -->
<!--    <iso>file:/var/lib/libvirt/images/CentOS6.2-x86_64-DVD.iso</iso> -->
  <install type='url'>
     <url>ftp://ftp.riken.jp/Linux/centos/6.2/os/x86_64/</url>
  </install>
  <rootpw>password</rootpw>
 </os>
  <packages>
    <!-- <package name="ftp"><file>ftp</file></package> -->
    <!-- <package name="telnet"><file>telnet</file></package> -->
    <!-- <package name="vim"><file>vim</file></package> -->
  </packages>
 <commands>
   <!-- <command name='update-all'>yum -y update</command> -->
   <command name='epel_repo_add'>yum install http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm -y</command>
   <command name='cloud-init-install'>yum install cloud-init -y</command>
   <command name='setup-rc-local'>
sed -i 's/rhgb quiet/console=ttyS0/' /boot/grub/grub.conf
sed -i '/.*eth0.*/d' /etc/udev/rules.d/70-persistent-net.rules
sed -i 's/eth1/eth0/' /etc/udev/rules.d/70-persistent-net.rules
sed -i "s/HWADDR/#HWADDR/" /etc/sysconfig/network-scripts/ifcfg-eth0

cat >> /etc/rc.local &lt;&lt; EOF
if [ ! -d /root/.ssh ]; then
  mkdir -p /root/.ssh
  chmod 700 /root/.ssh
fi

# Fetch public key using HTTP
ATTEMPTS=10
while [ ! -f /root/.ssh/authorized_keys ]; do
    curl -f http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key > /tmp/aws-key 2>/dev/null
    if [ \$? -eq 0 ]; then
        cat /tmp/aws-key >> /root/.ssh/authorized_keys
        chmod 0600 /root/.ssh/authorized_keys
        restorecon /root/.ssh/authorized_keys
        rm -f /tmp/aws-key
        echo "Successfully retrieved AWS public key from instance metadata"
    else
        FAILED=\$((\$FAILED + 1))
        if [ \$FAILED -ge \$ATTEMPTS ]; then
            echo "Failed to retrieve AWS public key after \$FAILED attempts, quitting"
            break
        fi
        echo "Could not retrieve AWS public key (attempt #\$FAILED/\$ATTEMPTS), retrying in 5 seconds..."
        sleep 5
    fi
done
EOF
   </command>
 </commands>
</template>
TEMPLATE

2.1.1.4.4.3.3.2. 仮想イメージの作成

OSの仮想イメージを作成します。
時間内に作成できない場合はオプションに -t 3000 を付与して実行してください。
$ sudo oz-install -d4 -u /etc/oz/centos6.2.tdl

2.1.1.4.4.3.3.3. OpenStackへの登録

OpenStackに登録とかしなくてもKVMなどでちゃんと利用可能です。

2.1.1.4.4.3.3.3.1. イメージの登録(無圧縮)

OpenStackへの登録はcontainer_formatをbare、disk_formatはrawを設定して行います。
$ glance image-create --name "centos6.2" --disk-format=raw --container-format=bare --is-public=true < /var/lib/libvirt/images/centos6.2_x86_64.dsk

ディスクフォーマットをqcow2にして更に圧縮する場合は以下のコマンドで行います。約30分の1のサイズになりました。

$ qemu-img convert -O qcow2 -c /var/lib/libvirt/images/centos6.2_x86_64.dsk /var/lib/libvirt/images/centos6.2_x86_64.qcow2

2.1.1.4.4.3.3.3.2. イメージの登録(圧縮)

圧縮した場合はcontainer_formatをovf、disk_formatはqcow2を設定して行います。

$ glance image-create --name "centos6.2" --disk-format=qcow2 --container-format=ovf --is-public=true < /var/lib/libvirt/images/centos6.2_x86_64.qcow2

2.1.1.4.4.3.3.3.3. イメージからインスタンスを起動

$ nova boot --flavor 1 --image centos6.2 centos62_001 --key_name mykey

2.1.1.4.4.3.3.3.4. インスタンスへログイン

$ ssh -i /home/stack/mykey root@10.0.0.4