Hetzner - DokuWiki
Xenserver 5.5: Automatische Installation, sw raid1, lokale ISO library
Hier ein kleines Howto, wie ich meinen neuen Server (EQ6) mit Xenserver 5.5 automatisch installiert habe (spricht: kein cdrom, keine lara) und
folgende Systemaenderungen durchgefuehrt habe:
- software raid1 (md)
- lokale ISO libary einbinden
1. Installation
1. Image besorgen (no na)
2. Image mounten und per http zur Verfuegung stellen
# mount -o loop FREE_XenServer-5.5.0-install-cd.iso /mnt # mkdir /var/www/xenserver # cp -a /mnt/* /var/www/xenserver
3. Answerfile generieren und nach /var/www/xenserver kopieren
Beispielfile:
<installation mode="fresh" srtype="lvm"> <bootloader>grub</bootloader> <primary-disk gueststorage="yes">sda</primary-disk> <keymap>de</keymap> <hostname>xen</hostname> <root-password>my_password</root-password> <source type ="url">http://my_webserver_ip/xenserver</source> <!-- No Post install scripts configured --> <admin-interface name="eth0" proto="static"> <ip>xxx.xxx.xxx.xxx</ip> <subnet-mask>255.255.255.192</subnet-mask> <gateway>xxx.xxx.xxx.xxx</gateway> </admin-interface> <nameserver>213.133.99.99</nameserver> <nameserver>213.133.100.100</nameserver> <timezone>Europe/Berlin</timezone> <time-config-method>ntp</time-config-method> <ntp-servers>ntp</ntp-servers> <ntpservers>83.246.120.75</ntpservers> <ntpservers>213.9.73.106</ntpservers> <ntpservers>188.40.34.195</ntpservers> </installation>
Das answerfile kann man bequem mit einer schoenen GUI von Thomas
Krampe erstellen: http://wiki.xenmaster.de/doku.php/tools/xstools
Achtung: Fuer die URL bitte die IP Adresse und nicht den Hostnamen eintragen!
4. Neuen Server mit default image (z.b. CentOS) versorgen
5. Einloggen und folgende Files aus dem Xenserver Image nach /boot kopieren
# /mnt/boot/vmlinuz # /mnt/boot/xen.gz # /mnt/boot/install.img
6. Grub Eintrag veraendern
Grub muss nun die neu kopierten Files booten, also einen neuen Eintrag hinzufuegen. Hier eine komplette menu.lst des default CentOS Images:
# # Hetzner Online AG - installimage # GRUB bootloader configuration file # timeout 5 default 1 title CentOS Linux (2.6.18-128.1.16.el5) root (hd0,1) kernel /boot/vmlinuz-2.6.18-128.1.16.el5 ro root=/dev/md2 vga=0x317 initrd /boot/initrd-2.6.18-128.1.16.el5.img title Install Xenserver root (hd0,1) kernel /xen.gz dom0_mem=752M acpi=off nosmp noapic noirqbalance module /vmlinuz answerfile=http://my_webserver_ip/xenserver/xenserver.xml install module /install.img
Achtung: Die URL vom answerfile muss mit der IP des Servers angegeben werden, nicht mit dem Hostnamen. Daher aufpassen, wenn
man NameVirtualHosts o.ae. einsetzt!
7. Reboot
Nun sollte die Installation starten, was man leicht per tail -f auf das
apache access_log pruefen kann.
Erweiterung 1: RAID1
Hierbei gibt es bereits eine sehr gute Doku, auf die im Hetzner Wiki bereits verlinkt wird:
http://www.toddsmith.org/wordpress/uncategorized/configure-xenserver-50-free-for-software-raid-1
Hier die zusammengefassten Befehle (die Mutige mit cut'n'paste ausfuehren koennen):
dd if=/dev/sda of=/dev/sdb bs=512 count=1
echo -e "\nt\n1\nfd\nt\n3\nfd\nw\nx" | fdisk /dev/sdb
[ -e /dev/md0 ] || mknod /dev/md0 b 9 0
[ -e /dev/md1 ] || mknod /dev/md1 b 9 1
mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/sdb1
mdadm --create /dev/md1 --level=1 --raid-devices=2 missing /dev/sdb3
pvcreate /dev/md1
volume_group=`vgscan | grep VG | awk -F \" '{print $2}'`
vgextend $volume_group /dev/md1
pvmove /dev/sda3 /dev/md1
vgreduce $volume_group /dev/sda3
mkfs.ext3 /dev/md0
cd / && mount /dev/md0 /mnt && rsync -a --progress --exclude=/sys --exclude=/proc --exclude=/dev/shm --exclude=/dev/pts / /mnt
mkdir /mnt/sys
mkdir /mnt/proc
sed -r -i 's,LABEL=root-\w+ ,/dev/md0 ,g' /mnt/etc/fstab
mkdir /root/initrd && cd /root/initrd
zcat /boot/initrd-`uname -r`.img | cpio -i && \ cp /lib/modules/`uname -r`/kernel/drivers/md/raid1.ko lib
q="echo Waiting for driver initialization."
sed -r -i "s,^${q}$,\n\necho Loading raid1.ko module\ninsmod /lib/raid1.ko\n${q}\n,g" init
q="resume /var/swap/swap.001"
sed -r -i "s,^${q}$,${q}\necho Running raidautorun\nraidautorun /dev/md0\nraidautorun /dev/md1,g" init
r=`grep mkroot /root/initrd/init`
sed -r -i "s|^${r}$|${r/sda1/md0}|g" init
find . -print | cpio -o -c | gzip -c > /mnt/boot/initrd-`uname -r`.img
sed -r -i 's,LABEL=root-\w+ ,/dev/md0 ,g' /mnt/etc/fstab
sed -r -i 's,LABEL=root-\w+ ,/dev/md0 ,g' /etc/fstab
Fuer den grub bootloader werden noch folgende cmds benoetigt:
sed -r -i 's,root=LABEL=root-\w+ ,root=/dev/md0 ,g' /mnt/boot/grub/grub.conf sed -r -i 's,root=LABEL=root-\w+ ,root=/dev/md0 ,g' /boot/grub/grub.conf grub-install /dev/sdb
Und fuer das stdmaessige extlinux:
sed -r -i 's,root=LABEL=root-\w+ ,root=/dev/md0 ,g' /mnt/boot/extlinux.conf sed -r -i 's,root=LABEL=root-\w+ ,root=/dev/md0 ,g' /boot/extlinux.conf cat /usr/lib/syslinux/mbr.bin > /dev/sdb cd /mnt && extlinux -i boot/ extlinux -i boot/ cp /mnt/boot/extlinux.conf /boot/ cp /mnt/boot/initrd-`uname -r`.img /boot
Nach dem naechsten Reboot noch die MD devices vervollstaendigen:
echo -e "\nt\n1\nfd\nt\n3\nfd\nw\nx" | fdisk /dev/sda mdadm -a /dev/md0 /dev/sda1 mdadm -a /dev/md1 /dev/sda3
Lokale ISO Libary einbinden
Xenserver 5.5 bietet keine Moeglichkeit ISO Images im lokalen Storage anzubieten. Um dies dennoch zu ermoeglichen, wird im LVM des Datenbereiches ein neues LV angelegt und per lokalem NFS Server durchgereicht. Es ist nicht performant, aber es erfuellt seinen Zweck (Installation) und wird die root Partition auch nicht zumuellen.
Quelle: http://forums.citrix.com/thread.jspa?messageID=1393861&tstart=0
1. Eigene VG finden
# vgscan
Reading all physical volumes. This may take a while...
Found volume group "VG_XenStorage-709d46ed-8193-d470-4ab8-21953af4f863" using metadata type lvm2
2. Neues LVM anlegen create new lvm
(bsp mit 12 GB)
# lvcreate -L 12G -n ISO VG_XenStorage-<meineid> Logical volume "ISO" created
3. Filesystem anlegen
# mkfs.ext3 /dev/VG_XenStorage-<meineid>/ISO
4. /etc/exports anpassen
mkdir /ISO echo "/ISO *(rw,no_root_squash,sync)" >> /etc/exports
5. NFS und Portmappen starten und rebootfest aktivieren
# chkconfig --level 345 nfs on # chkconfig --level 345 portmap on # service nfs start # service portmap start
6. Mount beim boot
Am Ende des Files folgendes hinzufuegen:
lvchange -a y /dev/VG_XenStorage-<meineid>/ISO mount /dev/VG_XenStorage-<meineid>/ISO /ISO
7. ISO Libaray in XenCenter eintragen
Als nfs mountpoint "localhost:/ISO" angeben
Netzwerk
1. Mitglieferte IPs in RZ10
Die 3 mitgelieferten IPs fuer die EQ Reihe der Hetzner Server (muessen explizit ueber den Robot beantragt werden) sind im selben Subnetz wie die IP des Hauptservers). Als default GW wird die IP der xenbr0 verwendet.
Übernommen aus dem Hetznerforum 5.5: Automatische Installation, sw raid1, lokale ISO library geschrieben von angrox

