c't-Server 2.0 auf 2.1 aktualisieren
Ein automatisches Update gibt es nicht, sondern eine ganze Reihe von Schritten, die man durchführen muss. Die Reihenfolge ist wahrscheinlich nicht kriegsentscheidend, aber wie hier dargestellt erprobt ;-)
Kernel aktualisieren
Zunächst aktualisiert man den Kernel (ist ein offizielles Debian-(Security-)Update):
apt-get install linux-image-2.6-xen-686
Bitte auch vorher den Hinweis unter "Xen aktualisieren" beachten (hinsichtlich manuell eingetragener Bootoptionen in grub).
Für den nächsten Start wird der neue Kernel (z.Zt. 2.6.18-5-xen-686) standardmäßig gewählt. Der alte (2.6.18-4-xen-686) bleibt installiert und ist per Grub-Menü auswählbar. Wenn die vom neuen Kernel gewählte Consolen-Größe jenseits von 80x25 nicht zusagt, genügt es die Zeile für den Hypervisor-Start in /boot/grub/menu.lst von
kernel /xen-3.1.0-1-i386-pae.gz
nach
kernel /xen-3.1.0-1-i386-pae.gz vga=text-80x25
umzuschreiben.
Eine Warnung am Ende: Bisher mit dem ctdomubuilder (oder auch zu Fuß) angelegte Debian-DomU-Instanzen, bekommen vom dem Kernel-Update nichts mit. In ihren Konfigurationsdateien in /etc/xen steht, welchen Kernel sie benutzen. In den LVM-Volumes/Images? der DomUs findet sich zudem eine Kopie der Module zum jeweiligen Kernel. Um eine DomU mit einem neuen Kernel zu versorgen, muss man den in der Konfigurationsdatei unter /etc/xen nachtragen und die Module auf das Volume/in die DomU kopieren.
Xen aktualisieren
Um den Hypervisor auf den gleichen Stand zu bringen wie im c't-Server 2.1 (3.1.1) muss das eigens dafür bereitgestellte Repository in der /etc/apt/sources.list eingetragen sein:
deb http://www.heise.de/ct/projekte/srv/v21 debs/
Nach einem apt-get update, sollte der Aufruf von
apt-get install xen-hypervisor-3.1-1-i386
Die neue Version einrichten. Achtung: Während der alte Hypervisor noch explizit (im Paketnamen) als PAE-Variante markiert war, ist das die neue nicht - die Debian-Xen-Entwickler haben die Strategie geändert. Mit 3.1 gibt es ein Paket mit dem Zusatz "nonpae" (was für den c't-Server allerdings nicht zum Download bereitsteht).
Nach der Installation ist die Konfigurationsdatei für den Boot-Manager Grub ergänzt worden. Dort finden sich für beide Kernel zusätzliche Einträge für Xen 3.1.1.
Hinweis: die Installation eines neuen Kernels und/oder des neuen Hypervisors übernimmt leider manuell angepasste grub-Bootoptionen nicht in die neue /boot/grub/menu.lst. Zur Sicherheit also vorher manuell eingetragene Optionen wie dom0_mem, pciback.hide usw. aufschreiben. Es wird allerdings auch jedesmal eine /boot/grub/menu.lst~ angelegt (als Sicherheitskopie), dort stehen dann die Bootoptionen drin. Diese Datei wird aber bei jeder Installation eines neues Kernels oder Hypervisors überschrieben.
Endian-Firewall aktualisieren
Momentan stellt Endian für die Community-Ausgabe seiner Firewall keine Updates bereit. Wir wollen diese Politik auch nicht unterminieren und zeigen hier eine Alternative zum grundsätzlich möglichen Aktualisieren einzelner Pakete. Die Grundidee dahinter ist, die Konfigurationsdaten der Firewall über einen vorgesehen Backup-Methode zu sichern, die Xen-Instanz der zu aktualisierenden Firewall so umzubenennen, dass sich die neue Version parallel installieren lässt (was aufgrund der Paketnamen derzeit nicht möglich ist - die neue Version würde die alte überschreiben). Voraussetzung dafür, dass das Folgende klappt, ist ein Eintrag für das o.g. Update-Repository in der sources.list-Datei Ihres Servers.
Zunächst beenden Sie die Endian-Firewall mit xm shutdown -w endian. Der Befehl kehrt erst zurück, wenn die Endian-DomU nicht mehr läuft. Jetzt können Sie die Konfigurationsdatei für die Domain etc. gefahrlos umbenennen:
cd /etc/xen mv endian endian211
Öffnen Sie die Datei anschließend in einem Editor, etwa nano endian211 und benennen Sie alle Vorkommen von endian (in den Optionen name=, disk, kernel und ramdisk) in endian211 um. Das betrifft erstens den Namen der DomU, zweitens den Speicherort der virtuellen Platten und drittens den des Verzeichnisses, in dem Kernel und Init-RAM-Disk für die DomU liegen. Bei einer LVM-Konfiguration (die einzelnen in disk= beschriebenen Platten beginnen mit phy) müssen Sie die Logical-Volumes umbenennen:
lvrename server/endianlv_boot endian211lv_boot lvrename server/endianlv_root endian211lv_root lvrename server/endianlv_swap endian211lv_swap lvrename server/endianlv_var endian211lv_var
Außerdem müssen Sie noch das Verzeichnis umbenennen, über das die virtuellen Platten der Firewall bei der Installation der Endian-DomU ins System gebracht werden, und das Verzeichnis, in dem die Endian-Kernel und Init-RAM-Disk-Dateien liegen:
cd /var/lib/xen mv endian endian211 cd /boot mv endian endian211
Für eine nicht LVM-Installation der Firewall ist das unbedingt nötig, weil die sonst ihre virtuellen Platten nach dem Ändern der Konfigurationsdatei nicht mehr findet.
Anschließend löschen Sie die leere Pakethülle für die Debian-Endian-DomU aus Ihrem System, damit die im Paket enthaltenen Skripte nicht auf die Nase fallen, legen Sie vorher das (im Vorfeld umbenannte) Verzeichnis /var/lib/xen/endian an:
mkdir /var/lib/xen/endian apt-get remove --purge endian
Dieser Schritt ist nötig, damit sich die neue Version reibungslos installieren lässt. Er klappt nur dann, wenn in der Liste der laufenden DomUs keine mit "endian" im Namen aufgeführt wird.
Anschließend können Sie die Firewall-DomU unter ihrem neuen Namen wieder starten xm create endian211. Steuern Sie in der Web-Oberfläche jetzt die Datensicherung an. Sie finden diese auf der Seite "System" unter dem Stichwort "Datensicherung". Klicken Sie den Knopf hinter "Datensicherung durchführen an", geben Sie einen Namen für die Sicherung an und betätigen Sie den Knopf erneut. Anschließen taucht diese Sicherung in der Liste der Datensicherungssätze auf. Über einen Klick auf das Diskettensymbol können Sie die Daten auf dem Client speichern, von dem aus Sie das Web-Frontend der Firewall bedienen.
Bevor Sie die neue Version des Endian-DomU-Pakets installieren, sollten Sie sicherstellen, dass ctsrvcfg in aktueller Fassung installiert ist:
dpkg -l | grep ctsrvcfg
sollte eine Versionsnummer >= 1.32 ausgeben. Sollte diese Version noch nicht installiert sein, aktualisieren Sie ctsrvcfg per
apt-get upgrade
Rufen Sie ctsrvcfg auf und markieren Sie unter DomUs Endian. ctsrvcfg fragt im Anschluss daran die IP-Adresse und den Namen der Volume-Group für die virtuelle Platte der Firewall ab und holt dann die beiden Pakete, aus denen die DomU besteht: endian und endian-img (die Version 2.1 des c't-Server trennt die Fertig-DomUs in zwei Pakete auf, um Updates zu erleichtern). Das Herunterladen des img-Pakets dauert je nach DSL-Anschluss eine Weile, denn es ist über 80 MByte groß.
Achtung: ctsrvcfg fragt eine IP-Adresse für die Firewall ab. Wenn Sie hier die Vorgabe übernehmen, laufen alte und neue Firewall womöglich auf der gleichen Adresse. Nach der Installation der Pakete sollten Sie die alte Firewall also zunächst beenden und die neue konfigurieren. Damit Ihr Client-System die neue Endian-Instanz erreicht, müssen Sie dem für die Zuordnung von Netzwerkkarten zu IP-Adressen nötigen ARP womöglich auf die Sprünge helfen. Beenden Sie auf dem Server die alte Endian-Firewall:
xm shutdown -w endian211
Sollte Ihr Client das Web-Interface der neuen Debian-DomU nicht anzeigen (es fragt diverse Konfigurationsdetails ab, unter anderem auch die Passwörter für die Endian-Standardbenutzer), dann helfen Sie ARP auf die Sprünge:
arp -d 192.168.1.1
löscht den lokalen ARP-Cache, zwingt den Client also, erneut im Netz zu suchen. Das genügt in der Regel, damit das Web-Interface der neuen DomU erreichbar ist.
Wenn Sie der Lizenzvereinbarung zugestimmt haben, fragt das Web-Interface ab, ob Sie ein Backup zurückspielen wollen. Geben Sie die zuvor mit der alten Version gesicherte Datei an und betätigen Sie anschließend den Button "Import&Restore". Die Firewall versucht anschließend neu zu booten, braucht aber Hilfe - starten Sie sie mit
xm create -c endian
von Hand. Die Firewall sollte mit der gewohnten Konfiguration laufen und Verbindungen ins Internet vermitteln. Verlassen Sie nach dem abgeschlossenen Bootvorgang die Konsole der Endian-DomU.
Sollte der Bootvorgang scheinbar mit der Meldung
INIT: entering runlevel: 3
stehen bleiben - keine Panik. Die DomU bootet weiter und Sie können sich per ssh als root anmelden. Ändern Sie mit einem Editor (z.b. nano) folgende Dateien im Filesystem der Endian-DomU:
/etc/inittab: An die Zeile
# Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty --autologin root --loginprog /usr/sbin/efw-console
ein xvc0 anhängen, die Zeile sollte dann so aussehen:
# Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty --autologin root --loginprog /usr/sbin/efw-console xvc0
(Steht in der Zeile am Ende tty0 überschreiben Sie tty0 einfach mit xvc0).
/etc/securetty: Am Anfang der Datei ebenfalls xvc0 nachtragen, die ersten beide Zeilen sollten dann so aussehen:
xvc0 tty0
Melden sie sich nun mit exit wieder ab.
Nach einem erneuten Reboot per
xm shutdown -w endian && xm create -c endian
erscheint die EFW-console wieder wie gewohnt.
ClarkConnect aktualisieren
Die Aktualisierung ließe sich analog wie die der Endian-Firewalll durchführen. Allerdings stellen wir das Paket für ClarkConnect Community Edition 4.2 derzeit nicht zum Download bereit -- es ist über 200 MByte groß. Die aktuelle Fassung ist als Debian-Paket auf der Heft-DVD des c't special Netzwerke enthalten (analog aufgeteilt in ein schlankes Installationspaket und ein eher voluminöses mit dem Image der vorbereiteten Installation).