Um die Aufrechterhaltung des Betriebs zu gewährleisten, muss jede Migration geplant und anhand dieses Plans durchgeführt werden. Dieses Prinzip gilt unabhängig vom eingesetzten Betriebssystem.
3.2.1. Überprüfen und Identifizieren der Dienste
So einfach es auch scheint, dieser Schritt ist entscheidend. Ein professioneller Administrator kennt die primären Aufgaben jedes Servers genau. Solche Aufgaben können sich jedoch ändern, und manchmal haben erfahrene Nutzer vielleicht auch "wilde" Dienste installiert. Wenn man über sie Bescheid weiß, kann man zumindest entscheiden, was man mit ihnen machen will, anstatt sie nur einfach zu löschen.
Zu diesem Zweck ist es sinnvoll, Ihre Benutzer vor der Servermigration über das Projekt zu informieren. Um sie an dem Projekt zu beteiligen, könnte es nützlich sein, vor der Migration die am häufigsten verwendete freie Software auf denjenigen Desktops zu installieren, mit denen die Benutzer nach der Migration zu Debian später wieder arbeiten; LibreOffice und die Mozilla-Suite sind dafür die besten Beispiele.
3.2.1.1. Netzwerk und Prozesse
Das nmap
Werkzeug (im gleichnamigen Paket) identifiziert schnell Internetdienste, die auf einer Maschine laufen und die über das Netzwerk verbunden sind, ohne dass ein Login benötigt wird. Man braucht nur das folgende Kommando auf einem anderen Rechner aufzurufen, der mit demselben Netzwerk verbunden ist:
$
nmap mirwiz
Starting Nmap 7.40 ( https://nmap.org ) at 2017-06-06 14:41 CEST
Nmap scan report for mirwiz (192.168.1.104)
Host is up (0.00062s latency).
Not shown: 992 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
5666/tcp open nrpe
9999/tcp open abyss
Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
Wenn auf einem Server Unix läuft und Anwendern eine Shell angeboten wird, ist es oftmals interessant, zu wissen, ob ein Prozess auch in Abwesenheit des Users im Hintergrund läuft. Das Dienstprogramm
ps auxw
zeigt alle laufenden Prozesse mit der zugehörigen ID. Ein Gegenprüfen dieser Informationen mit der Ausgabe des
who
-Befehls, das eine Liste der angemeldeten User zeigt, kann helfen, verdächtige oder versteckte Prozesse aufzuzeigen. Ein Blick auf
crontab
zeigt oftmals interessante Information über Funktionen und Prozesse, die der Server regelmäßig ausführt. Eine vollständige Erläuterung des
cron
-Befehls findet sich hier
Abschnitt 9.7, „Aufgaben mit cron
und atd
zeitlich festlegen“.
In jedem Fall ist es absolut unerlässlich, Sicherheitskopien des eigenen Servers anzulegen. Dadurch ist es möglich, Informationen wiederherzustellen, falls Benutzer Probleme aufgrund der Migration melden.
3.2.2. Konfiguration sichern
Es wird empfohlen, die Konfiguration jedes verwendeten Dienstes zu sichern, um ihn identisch auf dem aktualisierten Server einrichten zu können. Zumindest sollte eine Datensicherung der Konfigurationsdateien vorliegen.
Für Unix-Maschinen befinden sich die Konfigurationsdateien gewöhnlich in /etc/
. Sie können sich aber auch in einem Unterverzeichnis von /usr/local/
befinden. Dies ist der Fall, wenn ein Programm durch Kompilieren des Quellcodes installiert wird. In einigen Fällen sind die Dateien auch unter /opt/
zu finden.
Bei Diensten, die Daten verwalten (wie zum Beispiel Datenbanken), wird dringend empfohlen, die Daten in ein standardisiertes Format zu exportieren, das durch die neue Software problemlos wieder importiert werden kann. Ein solches Format ist üblicherweise dokumentiert und liegt als Textdatei vor. So kann es beispielsweise als SQL Dump bei einer Datenbank oder als LDIF-Datei für einen LDAP-Server vorliegen.
Jede Serversoftware ist unterschiedlich, und es ist unmöglich, alle denbaren Fälle im Detail zu beschreiben. Lesen Sie die Dokumentation der vorhandenen und von der neuen Software, um herauszufinden, welche Teile exportiert (und damit wieder reimportiert) werden können und welche manuelle Eingriffe erfordern. Das Ziel dieses Buches ist es, die Konfiguration der wichtigsten Serverprogramme unter Linux zu veranschaulichen.
3.2.3. Übernahme eines vorhandenen Debianservers
Um die Wartung erfolgreich zu übernehmen, kann man einen bereits mit Debian laufenden Server analysieren.
Die erste Datei, die man kontrollieren sollte, ist /etc/debian_version
, welche üblicherweise die Versionsnummer des installierten Debian-Systems enthält (sie ist Teil des base-files-Pakets). Falls sie testing/unstable
beinhaltet, bedeutet dies, dass das System mit Paketen aktualisiert wurde, welche aus einem der beiden Entwicklungszweige stammen.
Mit dem Kommando apt-show-versions
(aus dem gleichnamigen Debian-Paket) überprüfen Sie die Liste der installierten Pakete und identifizieren die verfügbaren Versionen. Für diesen Zweck kann auch aptitude
benutzt werden, wenn auch in einer weniger systematischen Art und Weise.
Ein kurzer Blick auf die Datei /etc/apt/sources.list
(und das Verzeichnis /etc/apt/sources.list.d/
) zeigt, woher die installierten Debian-Pakete kamen. Falls viele unbekannte Quellen erscheinen, könnte es der Administrator vorziehen, das Betriebssystem komplett neu zu installieren, um die optimale Kompatibilität zu gewährleisten, welche durch die Software von Debian sichergestellt wird.
Die Datei sources.list
ist oft ein guter Indikator: Die Mehrheit der Administratoren lassen Einträge zu früher genutzten APT-Quellen bestehen, zumindest als Kommentar. Dabei ist zu beachten, dass ehemalige Quellen inzwischen gelöscht und auch manuell zufällig aus dem Internet heruntergeladene Pakete installiert worden sein können (mithilfe des Kommandos dpkg
). In diesem Fall trügt das Erscheinungsbild eines "Standard"-Debian. Darum sollte man auf jeden noch so kleinen Hinweis achten, der auf die Existenz externer Pakete hindeutet. (Vorhandensein von deb
-Dateien in unüblichen Verzeichnissen, Paketversionsnummern mit spezieller Endung, welche auf eine Herkunft außerhalb des Debian-Projekts hindeuten, so zum Beispiel ubuntu
, ximian
etc.)
Genauso interessant ist es, den Inhalt des Verzeichnisses /usr/local/
zu analysieren. Dieses Verzeichnis ist gedacht für Programme, die manuell kompiliert und installiert wurden. Eine Auflistung von Software, die auf diese Weise installiert wurde, ist lehrreich, denn es stellt sich die Frage nach den Gründen, warum nicht das entsprechende Debian-Paket benutzt wurde (falls ein solches existiert).
3.2.4. Installation von Debian
Da nun alle Informationen über den bestehenden Server bekannt sind, können wir ihn herunterfahren und dann Debian darauf installieren.
Um die passende Version auszuwählen, müssen wir die Systemarchitektur kennen. Wenn es ein einigermaßen aktueller PC ist, dann wird es sehr wahrscheinlich ein amd64 (bei älteren PCs eher ein i386)-Prozessor sein. In anderen Fällen können wir die Möglichkeiten entsprechend dem zuvor genutzten System eingrenzen.
Es ist nicht vorgesehen, dass
Tabelle 3.1 vollständig ist, aber es kann hilfreich sein. In jedem Fall ist die Originaldokumentation die verlässlichste Quelle, um diese Informationen zu finden.
Tabelle 3.1. Passende Betriebssysteme und Architektur
Betriebssystem | Architektur(en) |
---|
DEC Unix (OSF/1) | alpha, mipsel |
HP Unix | ia64, Hppa |
IBM AIX | powerpc |
Irix | mips |
OS X | amd64, powerpc, i386 |
z/OS, MVS | s390x, s390 |
Solaris, SunOS | sparc, i386, m68k |
Ultrix | mips |
VMS | alpha |
Windows 95/98/ME | i386 |
Windows NT/2000 | i386, alpha, ia64, mipsel |
Windows XP / Windows Server 2008 | i386, amd64, ia64 |
Windows RT | armel, armhf, arm64 |
Windows Vista / Windows 7-8-10 | i386, amd64 |
3.2.5. Installation und Einrichtung der ausgewählten Dienste
Nach der Installation von Debian müssen wir Stück für Stück die Dienste installieren und einrichten, die auf diesem Computer laufen müssen. Die neue Konfiguration muss sich an der vorherigen orientieren, um einen reibungslosen Übergang zu gewährleisten. Alle in den beiden ersten Schritten gesammelten Informationen werden nützlich sein, um diesen Teil erfolgreich abzuschließen.
Bevor man sich Hals über Kopf auf diese Aufgabe stürzt, sollte man unbedingt den Rest dieses Buches lesen. Danach wird man ein genaueres Verständnis davon haben, wie die erwarteten Dienste einzurichten sind.