(WIP) |
(VMs setup... now to install OBS) |
||
| Line 1: | Line 1: | ||
| + | == Preparing Host == | ||
Starting with a minimal Suse 11.2 install | Starting with a minimal Suse 11.2 install | ||
| Line 5: | Line 6: | ||
ROOTFS=/data/11.2min/image-root | ROOTFS=/data/11.2min/image-root | ||
ROUTER_IP=10.0.0.1 | ROUTER_IP=10.0.0.1 | ||
| - | VG=VM | + | VG=VM |
| - | + | ||
| - | + | ||
</pre> | </pre> | ||
| Line 17: | Line 16: | ||
<pre> | <pre> | ||
| - | zypper in kiwi kiwi-templates kiwi-desc-xenboot squashfs | + | zypper in kiwi kiwi-templates kiwi-desc-xenboot squashfs emacs |
</pre> | </pre> | ||
| Line 43: | Line 42: | ||
</pre> | </pre> | ||
| - | + | Setup Xen networking. In xend-config.sxp uncomment: | |
| - | + | ||
<pre> | <pre> | ||
| - | + | (network-script 'network-bridge netdev=eth0') | |
| - | + | </pre> | |
| - | + | and comment out: | |
| - | + | <pre> | |
| - | + | # (network-script network-bridge) | |
| - | + | </pre> | |
| - | + | and run: | |
| + | <pre> | ||
| + | rcxend restart | ||
</pre> | </pre> | ||
| - | |||
Prepare an openSUSE minimal image: | Prepare an openSUSE minimal image: | ||
<pre> | <pre> | ||
mkdir -p /data/11.2min | mkdir -p /data/11.2min | ||
| - | kiwi --prepare suse-11.2-JeOS --root $ROOTFS --add-profile xenFlavour --add-package less --add-package iputils --add-package kernel-xen-2.6.31.12 | + | rm -rf /data/11.2min/root-image |
| + | kiwi --prepare suse-11.2-JeOS --root $ROOTFS --add-profile xenFlavour --add-package less --add-package iputils --add-package kernel-xen-2.6.31.12 --add-package wget --add-package less --add-package iputils --add-package terminfo --add-package emacs | ||
</pre> | </pre> | ||
| Line 78: | Line 78: | ||
| - | + | Prepare some overlay data from the main host to allow ssh into guests | |
| + | etc | ||
<pre> | <pre> | ||
| + | mkdir /data/vm_overlay/home | ||
| + | cp -ar /home /data/vm_overlay/home | ||
| + | ln /etc/passwd /data/vm_overlay/etc/ | ||
| + | ln /etc/shadow /data/vm_overlay/etc/ | ||
| + | ln /etc/sudoers /data/vm_overlay/etc/ | ||
| + | </pre> | ||
| + | |||
| + | == Make VMs - per VM == | ||
| + | |||
| + | Make sure you setup the base data environment | ||
| + | <pre> | ||
| + | VG=VM | ||
| + | FE_IP=10.0.0.10 | ||
| + | BE_IP=10.0.0.11 | ||
| + | </pre> | ||
| + | |||
| + | Create Xen volumes | ||
| + | <pre> | ||
| + | mk_lv() { | ||
| + | GUEST=$1 | ||
| + | lvremove /dev/$VG/${GUEST}_* | ||
| + | lvcreate -L 10G $VG -n ${GUEST}_root | ||
| + | lvcreate -L 2G $VG -n ${GUEST}_swap | ||
| + | mkswap -f /dev/$VG/${GUEST}_swap | ||
| + | } | ||
| + | </pre> | ||
| + | For cfe & cbe | ||
| + | <pre> | ||
| + | mk_lv cfe | ||
| + | mk_lv cbe | ||
| + | </pre> | ||
| + | |||
| + | Copy the minimal image and overlay to the VM root disk and set an IP | ||
| + | <pre> | ||
| + | mk_fs() { | ||
| + | GUEST=$1 | ||
| + | IP=$2 | ||
mkdir /mnt/lvm | mkdir /mnt/lvm | ||
| - | mkfs -text4 /dev/$VG/ | + | mkfs -text4 /dev/$VG/${GUEST}_root |
| - | mount /dev/$VG/ | + | mount /dev/$VG/${GUEST}_root /mnt/lvm |
rsync -HAXa /data/11.2min/image-root/ /mnt/lvm/ | rsync -HAXa /data/11.2min/image-root/ /mnt/lvm/ | ||
| - | echo | + | echo ${GUEST}.meego.com > /mnt/lvm/etc/HOSTNAME |
| - | echo "IPADDR='$ | + | echo "IPADDR='$IP/24'" >> /mnt/lvm/etc/sysconfig/network/ifcfg-eth0 |
| - | + | rsync -HAXa /data/vm_overlay/ /mnt/lvm/ | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | rsync -HAXa /data/ | + | |
| - | + | ||
| - | + | ||
umount /mnt/lvm | umount /mnt/lvm | ||
| + | } | ||
| + | </pre> | ||
| + | For cfe & cbe | ||
| + | <pre> | ||
| + | mk_fs cfe $IP_FE | ||
| + | mk_fs cbe $IP_BE | ||
</pre> | </pre> | ||
| - | Make per-machine files in /etc/xen/ | + | Make per-machine files in /etc/xen/ with unique MACs |
| + | Additional LV space can be allocated here too | ||
<pre> | <pre> | ||
| - | GUEST= | + | mk_g() { |
| - | cat <EOF > /etc/xen/$GUEST.cfg | + | GUEST=$1 |
| + | MAC=$2 | ||
| + | cat <<EOF > /etc/xen/$GUEST.cfg | ||
| + | name='${GUEST}' | ||
| + | disk=['phy:/dev/$VG/${GUEST}_root,xvda2,w', 'phy:/dev/$VG/${GUEST}_swap,xvda1,w'] | ||
| + | vif=['mac=$MAC'] | ||
| + | memory='2048' | ||
| + | |||
| + | root='/dev/xvda2 rw' | ||
| + | kernel='/boot/vmlinuz-2.6.31.12-0.2-xen' | ||
| + | ramdisk='/boot/initrd-2.6.31.12-0.2-xen' | ||
| + | extra='clocksource=jiffies console=hvc0 xencons=tty' | ||
| + | |||
| + | on_poweroff='destroy' | ||
| + | on_reboot='restart' | ||
| + | on_crash='restart' | ||
| + | EOF | ||
| + | } | ||
</pre> | </pre> | ||
| + | For cfe & cbe | ||
| + | <pre> | ||
| + | mk_g cfe 00:16:3E:40:B5:FE | ||
| + | mk_g cbe 00:16:3E:40:B5:BE | ||
| + | </pre> | ||
| + | |||
| + | Then start the VMs: | ||
| + | <pre> | ||
| + | xm create /etc/xen/cfe.cfg | ||
| + | xm create /etc/xen/cbe.cfg | ||
| + | </pre> | ||
| + | |||
| + | == Installing the Backend == | ||
| + | |||
| + | On this host we need also to setup openSUSE Tools repository: | ||
| + | |||
| + | <pre> | ||
| + | cd /etc/zypp/repos.d/; | ||
| + | http://download.opensuse.org/repositories/openSUSE:/Tools:/Unstable/openSUSE_11.2/openSUSE:Tools:Unstable.repo | ||
| + | zypper ref | ||
| + | # Accept the trust key | ||
| + | <pre> | ||
Starting with a minimal Suse 11.2 install
Define some base data
ROOTFS=/data/11.2min/image-root ROUTER_IP=10.0.0.1 VG=VM
Based on http://en.opensuse.org/Build_Service/KIWI/Cookbook
zypper ar http://download.opensuse.org/repositories/Virtualization:/Appliances/openSUSE_11.2/ Virtualization:Appliances zypper refresh
zypper in kiwi kiwi-templates kiwi-desc-xenboot squashfs emacs
Prepare the storage for LV usage
parted /ddev/sdb mklabel gpt mkpart p1 0 10% mkpart p2 10% 20% mkpart p3 20% 30% mkpart p4 30% 40% mkpart p5 40% 50% mkpart p6 50% 60% mkpart p7 60% 70% mkpart p8 70% 80% mkpart p9 80% 90% mkpart p10 90% 100% quit
Then make the VG
pvcreate /dev/sdb?* vgcreate $VG /dev/sdb1
Setup Xen networking. In xend-config.sxp uncomment:
(network-script 'network-bridge netdev=eth0')
and comment out:
# (network-script network-bridge)
and run:
rcxend restart
Prepare an openSUSE minimal image:
mkdir -p /data/11.2min rm -rf /data/11.2min/root-image kiwi --prepare suse-11.2-JeOS --root $ROOTFS --add-profile xenFlavour --add-package less --add-package iputils --add-package kernel-xen-2.6.31.12 --add-package wget --add-package less --add-package iputils --add-package terminfo --add-package emacs
Update the config & modules:
echo default $ROUTER_IP > $ROOTFS/etc/sysconfig/network/routes echo NETCONFIG_DNS_POLICY=\"\" >> $ROOTFS/etc/sysconfig/network/config echo nameserver 8.8.8.8 > $ROOTFS/etc/resolv.conf echo default $ROUTER_IP > $ROOTFS/etc/sysconfig/network/routes cat << EOF >$ROOTFS/etc/sysconfig/network/ifcfg-eth0 BOOTPROTO='static' BROADCAST='' STARTMODE='onboot' EOF echo /dev/xvda1 swap swap defaults 0 0 >> $ROOTFS/etc/fstab
Prepare some overlay data from the main host to allow ssh into guests
etc
mkdir /data/vm_overlay/home cp -ar /home /data/vm_overlay/home ln /etc/passwd /data/vm_overlay/etc/ ln /etc/shadow /data/vm_overlay/etc/ ln /etc/sudoers /data/vm_overlay/etc/
Make sure you setup the base data environment
VG=VM FE_IP=10.0.0.10 BE_IP=10.0.0.11
Create Xen volumes
mk_lv() {
GUEST=$1
lvremove /dev/$VG/${GUEST}_*
lvcreate -L 10G $VG -n ${GUEST}_root
lvcreate -L 2G $VG -n ${GUEST}_swap
mkswap -f /dev/$VG/${GUEST}_swap
}
For cfe & cbe
mk_lv cfe mk_lv cbe
Copy the minimal image and overlay to the VM root disk and set an IP
mk_fs() {
GUEST=$1
IP=$2
mkdir /mnt/lvm
mkfs -text4 /dev/$VG/${GUEST}_root
mount /dev/$VG/${GUEST}_root /mnt/lvm
rsync -HAXa /data/11.2min/image-root/ /mnt/lvm/
echo ${GUEST}.meego.com > /mnt/lvm/etc/HOSTNAME
echo "IPADDR='$IP/24'" >> /mnt/lvm/etc/sysconfig/network/ifcfg-eth0
rsync -HAXa /data/vm_overlay/ /mnt/lvm/
umount /mnt/lvm
}
For cfe & cbe
mk_fs cfe $IP_FE mk_fs cbe $IP_BE
Make per-machine files in /etc/xen/ with unique MACs Additional LV space can be allocated here too
mk_g() {
GUEST=$1
MAC=$2
cat <<EOF > /etc/xen/$GUEST.cfg
name='${GUEST}'
disk=['phy:/dev/$VG/${GUEST}_root,xvda2,w', 'phy:/dev/$VG/${GUEST}_swap,xvda1,w']
vif=['mac=$MAC']
memory='2048'
root='/dev/xvda2 rw'
kernel='/boot/vmlinuz-2.6.31.12-0.2-xen'
ramdisk='/boot/initrd-2.6.31.12-0.2-xen'
extra='clocksource=jiffies console=hvc0 xencons=tty'
on_poweroff='destroy'
on_reboot='restart'
on_crash='restart'
EOF
}
For cfe & cbe
mk_g cfe 00:16:3E:40:B5:FE mk_g cbe 00:16:3E:40:B5:BE
Then start the VMs:
xm create /etc/xen/cfe.cfg xm create /etc/xen/cbe.cfg
On this host we need also to setup openSUSE Tools repository:
cd /etc/zypp/repos.d/; http://download.opensuse.org/repositories/openSUSE:/Tools:/Unstable/openSUSE_11.2/openSUSE:Tools:Unstable.repo zypper ref # Accept the trust key <pre>