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:///xen/xenserver.xml erreichbar sein.)

<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 durch eure mittels vgscan ermittelte ID ersetzt werden!

# 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
Categories: Linux