rinseでcentosのイメージは簡単にできるだろうと思って、試したところうまく動きませんでした。CentOS-4ではURLの指定間違いなんかが報告されているようです。[Wrong server path for CentOS-4 in rinse.conf]
なにしろUbuntu 8.04で導入されるrinseのバージョンは0.9で最新版が1.5ですから、いろいろ不具合があるという事なのでしょう。[“rinse” source package in Ubuntu]
Vine Linux 4.2を導入する時にだいたい処理の流れはわかったので、動くようにしてみました。
PRMダウンロード先の変更
トラフィックを減らすためにRingサーバーにイメージの取得先を変更しています。
これは必須ではないですが、まぁ日本に住んでいるならRingサーバーにあるものは使いましょう、という事で…。
/etc/rinse/rinse.confを編集しました。
[centos-4]
mirror = http://ftp.iij.ad.jp/pub/linux/centos/4/os/i386/CentOS/RPMS/
mirror.amd64 = http://ftp.iij.ad.jp/pub/linux/centos/4/os/x86_64/CentOS/RPMS/
[centos-5]
mirror = http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/CentOS/
mirror.amd64 = http://ftp.iij.ad.jp/pub/linux/centos/5/os/x86_64/CentOS/
CentOS5用/etc/xen-tools/xen-tools.confの準備
Vine同様にdistributionにcentos-5を指定したファイル(/etc/xen-tools/xen-tools.centos5.conf)を作成します。
$ sed -e '/^#/d' -e '/^$/d' /etc/xen-tools/xen-tools.centos5.conf
dir = /home/xen
install-method = rinse
size = 4Gb # Disk image size.
memory = 128Mb # Memory size
swap = 128Mb # Swap size
fs = ext3 # use the EXT3 filesystem for the disk image.
dist = centos-5 # Default distribution to install.
image = sparse # Specify sparse vs. full disk images.
gateway = 192.168.1.1
netmask = 255.255.255.0
broadcast = 192.168.1.255
kernel = /boot/vmlinuz-`uname -r`
initrd = /boot/initrd.img-`uname -r`
mirror = http://ftp.jp.debian.org/debian/
ext3_options = noatime,nodiratime,errors=remount-ro
ext2_options = noatime,nodiratime,errors=remount-ro
xfs_options = defaults
reiser_options = defaults
serial_device = xvc0
disk_device = xvda #default
/etc/rinse/centos-5.packagesの変更
なぜか基本的なライブラリが不足していたので、パッケージを加えました。
e2fsprogs-libs
yum-metadata-parser
この状態で以前のようにxen-create-imageを実行すると、起動はできますが、コンソールからのrootでのログインが行なえないため実質的には使えません。
$ sudo xen-create-image --config /etc/xen-tools/xen-tools.centos5.conf --hostname xen68 --ip 192.168.1.68
これは/etc/shadowでrootのパスワードが設定されていないために発生します。Vineやdebianのイメージではrootはパスワードなしで作成されるため、すぐにパスワードを設定するようにしていました。
解決策1:作業用IDを手作業で作成する
作ってしまったイメージを消すのも、もったいないのでそのまま作業用IDを加えてみます。
ディスクイメージが /home/xen/domains/xen68/disk.imgにあると仮定しています。 まずはこのディスクイメージをマウントします。
$ sudo mount -o loop /home/xen/domains/xen68/disk.img /mnt $ sudo chroot /mnt
作業用のID"user1"を加えます。実際には自分が普段使っているIDを指定しています。
# /usr/sbin/useradd -m user1 # passwd user1 # /usr/sbin/usermod -G wheel user1
最後に"visudo"を起動して、wheelグループ(%wheel) のユーザーがsudoを実行できるようにします。 次の1行を加えます。
# visudo
%wheel ALL = (ALL) ALL
xenのイメージを起動する前にイメージをアンマウントします。
# exit $ sudo umount /mntこれでXenを起動して無事にログインできる事を確認しました。
$ sudo xm create -c /etc/xen/xen68.cfg
解決策(?)2:xen-create-imageのaccountオプション
rinseはXen dom0が稼働しているUbuntu 8.04上のアカウントをコピーする機能自体は一応持っているので、試してみる事にしました。
$ sudo xen-create-image --config /etc/xen-tools/xen-tools.centos5.conf --accounts --hostname xen68 --ip 192.168.1.68
ログファイルは"/var/log/xen-tools/xen68.log"にあって、どうもエラーを大量に掃き出している模様です。関係ないデーモン系のユーザーIDも以降しようとして、何かうまくいっていないようです。
このまま起動してもsudoの設定はされていないので、ログインができるだけで特権ユーザーにはなる術がありませんでした。実際には解決策1と同じ事をする必要がありそうです。
大量のIDを移行したいといった要求がなければ、これを修正してどうにかする必要性はないでしょう。
わざわざrootのパスワードを外すのも嫌なので、手動で自分用のIDを作成する事で回避します。この解決策2は使えないですね…。
0 件のコメント:
コメントを投稿