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

1.1.7.4.8. Ubuntu12.04

1.1.7.4.8.1. テンプレート作成

インストールするOSのテンプレートを作成します。
cloud-initの設定詳しい方一般ユーザにauthorized_keysを振るのはどうしたらいいのか教えてください。
仕組みはAmazonのEC2と同じなはずなので調べたのですがちょっとわかりませんでした。
問題なく使えるのですがrootユーザでのログイン(ssh -i mykey root@10.0.0.2みたいな)が気に入らないです。
rootpwは記述してますがUbuntuの場合rootでSSHのパスワード認証でのログインは出来ないのであまり意味無いです。
$ mkdir /etc/oz
$ cat << 'TEMPLATE' | sudo tee /etc/oz/ubuntu12.04.tdl > /dev/null
   <template>
 <name>ubuntu-precise_x86_64</name>
 <description>Ubuntu 12.04</description>
 <disksize>10</disksize>
 <os>
  <name>Ubuntu</name>
  <version>12.04</version>
  <arch>x86_64</arch>
  <rootpw>password</rootpw>
  <install type='iso'>
    <iso>http://releases.ubuntu.com/12.04/ubuntu-12.04.1-server-amd64.iso</iso>
  </install>
 </os>
 <commands>
   <command name='console'>
sed -i 's/splash//g' /etc/default/grub
sed -i 's/quiet/console=ttyS0/g' /etc/default/grub
/usr/sbin/update-grub
   </command>
   <command name='update'>
apt-get update
apt-get -y upgrade
apt-get -y install openssh-client
ln -s /etc/init/ssh.conf /etc/init.d/ssh
echo "cloud-init cloud-init/datasources string NoCloud, ConfigDrive, OVF, MAAS, Ec2" > /tmp/debconf-selections
/usr/bin/debconf-set-selections /tmp/debconf-selections
rm -f /tmp/debconf-selections
apt-get -y install cloud-init
apt-get clean
/usr/sbin/useradd -m stack
echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
sed -i 's/^user: ubuntu/user: stack/g' /etc/cloud/cloud.cfg
echo -n > /etc/udev/rules.d/70-persistent-net.rules
echo -n > /lib/udev/rules.d/75-persistent-net-generator.rules
   </command>
 </commands>
</template>
TEMPLATE

1.1.7.4.8.2. 仮想イメージの作成

OSの仮想イメージを作成します。

$ oz-install -d4 -u -t 3000 /etc/oz/ubuntu12.04.tdl

1.1.7.4.8.3. OpenStackへの登録

OpenStackに登録とかしなくてもKVMなどでちゃんと利用可能です。
OpenStackへの登録はcontainer_formatをbare、disk_formatはrawを設定して行います。
$ glance add name=ubuntu12.04 is_public=true container_format=bare disk_format=raw < /var/lib/libvirt/images/ubuntu-precise_x86_64.dsk

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

ディスクフォーマットをqcow2にして更に圧縮する場合は以下のコマンドで行います。

$ qemu-img convert -O qcow2 -c /var/lib/libvirt/images/ubuntu-precise_x86_64.dsk /var/lib/libvirt/images/ubuntu-precise_x86_64.qcow2

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

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

$ glance add name=ubuntu12.04 is_public=true container_format=ovf disk_format=qcow2 < /var/lib/libvirt/images/ubuntu-precise_x86_64.qcow2