In diesem Beitrag wird beschrieben, wie der (kostenlose) XenServer in Version 6.2.0 mit einer unbeaufsichtigten (unattended) Installation auf einen Root-Server installiert werden kann.
In unserem Beispiel verwenden wir einen Root-Server von Hetzner.de aus der EX-Serie.
Als Voraussetzung für die Installation:
– Einen Web-Server
– Eine Installation ISO von XenServer 6.2.0
(Muss kein .ISO File sein, da wir dieses sowieso händisch extrahieren werden)
– SSH Zugang zum Root Server
– Eine zweite IP Adresse (zwecks späterer Virtualisierung/Firewall/NAT)
Schritt 1 – Vorbereitungen
Unseren Root Server formatieren wir mit einem Betriebssystem Image des Hosters, in unserem Fall verwenden wir CentOS minimal.
Zusätzlich zur IP Adresse des Root Servers benötigen wir nun noch die Subnetzmaske und das Gateway. Dieses lässt sich beispielsweise mittels # route -n auf der Shell herausfinden.
Das zuvor heruntergeladene XenServer Install (ISO) wird nun entpackt (WinRar zum Beispiel) und anschließend vollständig auf euren dafür bereitgestellten Web-Server hochgeladen.
Dabei muss beachtet werden, dass sich das hochgeladene Verzeichnis nur mittels IP und ohne Domain aufrufbar ist! Beispielsweise über http://xx.xx.xxx.xx/xen/[DATEIEN]
Schritt 2 – Bootloader
Auf unserem Root-Server ändern wir nun die Konfigurationsdatei vom Bootloader (Grub).
Dazu ergänzen wir folgende Datei /boot/grub/grub.conf um folgenden Inhalt:
title Install Xenserver root (hd0,1) kernel /boot/xen.gz dom0_mem=752M acpi=off nosmp noapic noirqbalance module /boot/vmlinuz answerfile=http:///xen/xenserver.xml install module /boot/install.img
Wichtig ist dabei, das der Inhalt als ersten Eintrag eingetragen wird, jedoch unterhalb von “default” und “timeout”.
Bitte beachten, dass IP-Webserver mit eurer Web-Server IP ersetzt wird!
Nun müssen folgende 3 Dateien, am besten mittels wget, heruntergeladen werden:
cd /boot wget http:///xen/boot/vmlinuz wget http:// /xen/boot/xen.gz wget http:// /xen/install.img
Auf eurem Web-Server legt ihr nun ins root Verzeichnis von den Install Dateien folgende XML-Datei (Dateiname: xenserver.xml):
(Die Datei muss anschließend via http://
<installation mode="fresh" srtype="lvm"> <primary-disk gueststorage="yes">sda</primary-disk> <keymap>de</keymap> <hostname>xen</hostname> <root-password>Pa55w0rd</root-password> <source type ="url">http://<IP-Webserver>/xen</source> <admin-interface name="eth0" proto="dhcp"> <ip><IP-Rootserver></ip> <subnet-mask><Subnetmask-Rootserver></subnet-mask> <gateway><Gateway-Rootserver></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>
Achtung! Hinweis!
Die XML-Datei ist bei einem XenServer 6.2.0 gültig. Bei einem XenServer 6.0.x musste noch eine Zeile hinzugefügt werden, welche beim 6.2.0 zu einer Fehlermeldung führt “Unsupported bootloader ‘grub'”.
Die entsprechende Zeile lautet: <bootloader>grub</bootloader>
Schritt 3 – Installation
Im Prinzip müsst ihr den Root-Server jetzt nur noch neustarten. Um dabei jedoch ein paar Debug Möglichkeiten zu haben, folgender Vorschlag:
1) Dauer Ping auf die Root-Server IP
2) tail -f /var/log/apache2/access.log
Schritt 4 – Konfiguration
Davon ausgehend, dass die Installation erfolgreich war, kann sich nun mittels SSH und dem in der XML-Datei gesetztem Kennwort verbunden werden.
Nun richten wir uns eine NFS ISO Library ein, wo später die Installation’s ISO Dateien für unsere VMs abgelegt werden.
Dazu finden wir im ersten Schritt unsere LV ID heraus, dazu führen wir den Befehl:
# vgscan
aus. Anschließend suchen wir uns aus der Ausgabe unsere ID ( VG_XenStorage-meineID ) raus.
Fahren wir nun mit folgenden Befehlen fort:
Hier muss jeweils
# LVM erstellen lvcreate -L 20G -n ISO VG_XenStorage-meineid # LVM formatieren mkfs.ext3 /dev/VG_XenStorage-meineID/ISO # Neues Verzeichnis mkdir /ISO # In die /etc/exports hinzufügen echo "/ISO *(rw,no_root_squash,sync)" >> /etc/exports # Abschließend chkconfig --level 345 nfs on chkconfig --level 345 portmap on service nfs start service portmap start
Nun fügen wir folgende Zeile in die /etc/rc.local (am Ende) hinzu:
# vim /etc/rc.local lvchange -a y /dev/VG_XenStorage-meineid/ISO mount /dev/VG_XenStorage-meineid/ISO /ISO
Anschließend können wir im XenCenter unsere neu erstellte ISO Library hinzufügen:
Type: NFS ISO
Name: NFS ISO library
Share Name: localhost:/ISO
Schritt 4 – Abschließend
Damit der XenServer nun auch als Router (intern) für die VMs dienen kann, benötigen wir folgende Einträge in der /etc/sysctl.conf:
net.ipv4.ip_forward = 1 net.ipv6.conf.all.forwarding=1 net.ipv4.conf.default.proxy_arp = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.lo.send_redirects = 0 net.ipv4.conf.xenbr0.send_redirects = 0