Meego Wiki
Views

Build Infrastructure/Community Builder/Installation

From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
(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
-
FE_IP=10.0.0.10
+
-
BE_IP=10.0.0.11
+
</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:
-
Create some Xen volumes
+
<pre>
<pre>
-
lvcreate -L 10G $VG -n cfe_root
+
(network-script 'network-bridge netdev=eth0')
-
lvcreate -L 2G  $VG -n cfe_swap
+
</pre>
-
mkswap -f /dev/$VG/cfe_swap
+
and comment out:
-
+
<pre>
-
lvcreate -L 10G $VG -n cbe_root
+
# (network-script network-bridge)
-
lvcreate -L 2G  $VG -n cbe_swap
+
</pre>
-
mkswap -f /dev/$VG/cbe_swap
+
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:
-
Copy to each of the VM root disks
+
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/cfe_root
+
mkfs -text4 /dev/$VG/${GUEST}_root
-
mount /dev/$VG/cfe_root /mnt/lvm
+
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 cfe.meego.com > /mnt/lvm/etc/HOSTNAME
+
echo ${GUEST}.meego.com > /mnt/lvm/etc/HOSTNAME
-
echo "IPADDR='$FE_IP/24'" >> /mnt/lvm/etc/sysconfig/network/ifcfg-eth0
+
echo "IPADDR='$IP/24'" >> /mnt/lvm/etc/sysconfig/network/ifcfg-eth0
-
umount /mnt/lvm
+
rsync -HAXa /data/vm_overlay/ /mnt/lvm/
-
+
-
mkfs -text4 /dev/$VG/cbe_root
+
-
mount /dev/$VG/cbe_root /mnt/lvm
+
-
rsync -HAXa /data/11.2min/image-root/ /mnt/lvm/
+
-
echo cbe.meego.com > /mnt/lvm/etc/HOSTNAME
+
-
echo "IPADDR='$BE_IP/24'" >> /mnt/lvm/etc/sysconfig/network/ifcfg-eth0
+
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=cfe
+
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>

Revision as of 19:49, 31 July 2010

Preparing Host

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 VMs - per VM

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

Installing the Backend

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>
Personal tools