Serverumzug abgeschlossen

veröffentlicht am : Do, 04. 04. 2013 geändert am: Do, 04. 04. 2013

Kategorie: Computer

Schlagworte:


zugegebenermassen schon vor einer ganzen Weile - ein paar Tage lang war hier nicht alles auf dem aktuellsten stand, aber jetzt läuft wieder alles.

Der Grund für den Umzug waren diese Gründe:

  1. eine Neu-Installation des Servers war dringend nötig, durch rumgebastel und viel ausprobieren war das Betriebssystem einfach nur noch "verwurschtelt"... alles runter schmeißen, was nicht mehr aktuell war hätte länger gedauert, als alles wieder zurückzuspielen...
  2. Der dedicated root server war so nicht gesichert, d.h. wenn er ausgefallen wäre, wäre der Server und das Blog einfach weg gewesen. Deswegen der Umzug auf eine virtuelle Maschine
  3. Kosten - ein virtueller Server kostet, wenn man mit wenigen Resourcen aus kommt, deutlich weniger. Im Moment zahle ich so nur noch 35%...
klar, so ne eigene Maschine hat schon was, und dennoch... bin froh, umgestiegen zu sein.

Der Umzug der Daten war recht einfach... für diejenigen unter euch, die noch nie ein Linux umgezogen haben, hier eine kleine Anleitung.

Es ist immer gut, dass das Zielsystem und das Quellsystem sich einigermaßen ähneln, am besten die selbe Distribution. Dann kann man nämlich einfach "so" die Config-Dateien aus /etc kopieren und voila... leider geht das nicht immer und selbst wenn man die Distribution gleich lässt, ist es nicht garantiert, dass wieder alles geht.

In meinem Fall ging es auch nicht. Denn: auf dem Debian (Quell-)System gab es für einige Software keine Pakete in der richtigen Version, deswegen hab ich sie halt kurzer Hand selbst kompiliert und installiert - quasi "am Paketsystem der Distribution vorbei".

Das geht recht leicht, macht einen Serverumzug aber schwieriger... ich wollte wieder zurück zu einer guten Paketbasis, die sich auch verwalten lässt, deswegen bin ich auch auf Ubuntu 10.4 LTS umgezogen (12 ging leider nicht, wg. der Virtuellen Umgebung bei 1und1)..

Im endeffekt lief der Umzug aber problemlos:

  • Daten backup des alten Servers (hauptsächlich /home/)
  • neuen server aufsetzen, software Pakete installieren (Dovecot imap/s, MySQL, Apache+PHP5, Postfix, SpamAssassin)
  • User anlegen (also, die echten User, nicht systemuser wie postfix oder so). Die Passwörter kann man dabei übrigens kopieren, stehen verschlüsselt in /etc/shadow
  • root login auf dem neuen Server per ssh erst mal erlauben - aber dennoch mit einem guten Passwort (wenn der Server schon online ist). Da man für den Umzug eine ganze menge an zugriffen von Server alt auf ServerNeu hat, kann man das ganze auch mit einem ssh-Key authentifizieren.
    ssh-keygen -t dsa -b 2048 
    #Passwort vergeben
    scp .ssh/id_dsa.pub serverNeu:/root/.ssh/authorized_keys
    ssh-agent > ssh-agent.inc
    . ./ssh-agent.inc
    ssh-add
    #Passwort eingeben
  • Damit erstellt man einen ssh-key, der mit einem Passwort geschützt ist. Der Public-Key wird auf den neuen Server kopiert, an die richtige stelle (das Zeilverzeichnis /root/.ssh muss schon exisiteren, also ggf anlegen). Dort sorgt er dafür, dass wenn man sich als User Root anmelden will, die Authentifizierung auch über den Key geht. Das passwort des Key müsste man jetzt bei jedem Verbindungsaufbau zum neuen Server eingeben, das ist natürlich nervig. Dafür gibt es den SSH-Agent: der läuft als Daemon im Hintergrund und hält den schlüssel im Speicher. startet man den SSH-Agent und sagt mit ssh-add man möchte einen Key bereit stellen, wird man nur noch ein Mal nach dem Kennwort für diesen Key gefragt, dann nicht mehr. Das vereinfacht die Arbeit sehr. Falls die Key-authentifizierung doch nicht funktionieren sollte, schaut auf dem neuen Server mal, ob das file die richtige Berechtigung hat. Das Verzeichnis .ssh und die authorized_keys sollten nur vom user und sonst niemandem les- und schreibbar sein.. für das Verzeichnis also
    chmod 700 .ssh
    für das file entsprechend
    chmod 600 .ssh/authorized_keys
  • die Daten vom alten Server übertragen. Haupsächlich wichtig dabei ist alles was in /home ist, normalerweise sollte es sonst keine User-Daten geben. Geht recht einfach mit SCP oder, wenn die Verbindung nicht stabil sein sollte, auch per rsync
  • eigene Skripts und Verbesserungen kopieren. Z.B. die Skripte für das Training des SpamFilters
  • ACHTUNG: nicht vergessen, den Besitzer der Home-Verzeichnisse anzupassen. Die ID ist nicht unbedingt die selbe, weshalb es evtl zu Problemen kommen kann.
  • Dann kommt der schwierige Teil: die Konfigurationen übertragen. Das geht in einigen fällen recht einfach (bei ssh z.B. - die Syntax war identisch, konnte also einfach kopiert werden), bei postfix und dovecot gestaltete sich das etwas komplizierter. Ich bin so vorgegangen: das Verzeichnis /etc/ vom quellsystem auf das Zielsystem übertragen, aber in ein anderes Verzeichnis (z.B. /work-etc). Dann die notwendigen konfigurationen "sinngemäß" übertragen. dummerweise ging ein kopieren nicht, weil sich auf Grund von Versionssprüngen die Syntax einiger Files geändert hat und vor allem auf Grund des Distributionswechsels die Pfade nicht identisch sind. Das hat am meisten Zeit gebraucht.
  • Jeden Dienst einzeln übertragen, einen nach dem anderen ans laufen bekommen. Das ganze hat sich vor allem mit Postfix + Dovecot als etwas schwierig herausgestellt.
  • Features, die im  alten System nicht benutzt wurden (procmail z.B.) ausschalten
  • Konfigurationsleichen entfernen (so viele Files, die eigentlich gar nicht benötigt werden... vereinfacht alles bei der nächsten Migration).
  • Backup einrichten
  • DNS umstellen und warten (dauert leider mind. 1 Tag bis alle es gemerkt haben)
  • 2 Tage später noch fehlende Daten (z.B. mails) übertragen. Rsync ist hier sehr hilfreich. Folgende kleine Schleife kopiert alle noch fehlenden Mails vom alten System aus auf das neue. Man muss als root eingeloggt sein (logisch):
    for i in /home/*/Maildir do
       rsync -avuz $i/ serverNeu:/$i/
    done
  • den alten Server abschalten
  • checken ob sudo oder su auf dem neuen Server gehen
  • direktes ssh-root-login auf dem neuen Server ausschalten.
  • voilá
Und der nächste Umzug kommt bestimmt. Ich hab heute erfahren, dass ich hier _endlich_ schnelles Internet bekommen kann. Mit einer Festen IP-Adresse könnte man das ganze ja wirklich lokal hosten... zumal die Backups aller businessrelevanten Daten eh hier landen.... mal überlegen...

 

erstellt Stephan Bösebeck (stephan)