Projekt Homeserver im Eigenbau 6: Erste Schritte am Server

Noch mal kurz ein kleiner Nachtrag zur Installation. Ich habe mit dem System noch etwas herumgespielt, um einiges auszuprobieren. Dabei habe ich so viel durcheinander gebracht, dass eine Neuinstallation schneller ging als das Problem zu beheben. Das wäre gegangen, aber ich war zu faul. Und dabei habe ich das System zwar genau so installiert, wie im vorigen Beitrag beschrieben, aber mit einer kleinen Änderung: Da, wo ich die Software-Pakete auswähle, die installiert werden sollen, habe ich Web Server und SQL Database nicht mehr ausgewählt. Das Debian Desktop Environment habe ich wieder abgewählt. Damit wird tatsächlich eine grafische Oberfläche mit allen Zusatzprogrammen installiert, das war übrigens eines meiner Experimente. Ich will das nur erwähnt haben, falls ihr euch zu gegebener Zeit fragt, warum ich Web Server usw. manuell installiere.

Übrigens, macht das ruhig mal paar mal. Installiert Linux, spielt damit herum, macht es kaputt, installiert es erneut, spielt wieder rum, versucht dann, das Problem zu finden und zu lösen. So lernt man fast mehr, als trocken irgendwelche Bücher zu lesen. Durch viel Rumprobieren an meiner Mediacenter-Installation habe ich das meiste über Linux gelernt. Und es ist ja nicht wie Windows, was man aktivieren muss. Es kostet euch nur etwas Zeit, sonst nichts.

Neuinstallation leicht gemacht?

Zur Zeit ist es ja egal, ich habe ja noch nichts produktives mit dem System angestellt, aber das ändert sich jetzt sehr schnell. Und damit ich bei einer eventuellen Neuinstallation nicht alles per Hand wieder machen muss, führe ich während meiner Arbeit 3 kleine Dateien. Das sind Shellscripte, die haben unter Linux in etwa die Funktion von Batch-Dateien. Allerdings sind die unter Linux um ein beträchtliches mächtiger.

Die erste Datei ist filecopy.sh. Die Dateiendung *.sh findet ihr bei diesen Scripts. Hier schreibe ich einen Kopierbefehl rein, wenn ich z. B. eine Konfigurationsdatei ändere. Ändere ich z. B. die Konfigurationsdatei für das Netzwerk, so trage ich hier folgenden Befehl ein:

sudo cp /etc/network/interfaces ~

Dieser Befehl kopiert mir die Datei in mein Home-Verzeichnis.

Die zweite Datei ist filerestore.sh, die kopiert die gesicherten Konfigurationsdateien wieder dort hin, wo sie hingehören. Hier z. B:

sudo cp interfaces /etc/network/interfaces

Die beiden Scripte und die kopierten Konfigurationsdateien kann ich z. B. auf einen USB-Stick kopieren, so dass ich nach einer Neuinstallation einfach nur filerestore.sh ausführen muss. Und innerhalb von Sekunden ist mein Server wieder korrekt konfiguriert.

Die dritte Datei ist die installserver.sh. Hier trage ich die Befehle für alle nachträglich installierten Pakete ein. So brauche ich auch das hinterher nicht mehr per Hand machen, wenn ich den Server mal neu aufsetzen muss.

Näher zu Scripten, wie man sie schreibt und ausführt, gehe ich später noch ein. Aber ich würde mir, um die Arbeit hinterher zu erleichtern, die Befehle für evtl. nachinstallierte Pakete und geänderte Konfigurationsdateien irgendwo notieren.

Jetzt aber, los geht’s!

Nun haben wir es also geschafft, der Server ist installiert. Aber, außer ein bisschen Strom verbrauchen, tut der im Augenblick nichts interessantes. Also müssen wir mal sehen, das wir den Server überhaupt erst mal gesteuert bekommen.

Putty

Putty ist ein SSH-Client, mit dem man sich mit Linux-Rechnern verbinden kann, um an oder auf ihnen zu arbeiten. Das war auch der Grund, warum ich während der Installation auch den SSH Server angewählt habe. Mit Putty haben wir eine Eingabeaufforderung am Server, als würden wir direkt an diesem arbeiten.

Zunächst mal müssen wir Putty runterladen. Das ist nur ein winzig kleines Programm. Putty gibt es hier zum Herunterladen.

Sucht auf der Seite nach der Windows-Version und ladet das Programm runter. Kopiert es nun an einen Ort auf eurem Rechner, wo ihr es leicht wiederfindet. Ich habe auf meinem Laufwerk D: einen Ordner, wo ich all diese kleinen Helferlein reinkopiere.

Verbindung zum Server herstellen

Zunächst mal muss der Server eingeschaltet werden. Da er jetzt keinen Monitor hat, müssen wir raten, wann er fertig mit booten ist. Dafür muss ich mir auch noch mal was einfallen lassen…

Legt euch nun auf dem Desktop eine neue Verknüpfung an, dann braucht ihr das nicht jedes mal per Hand eingeben. Klickt rechts auf euren Windows-Desktop, wählt aus dem Kontextmenü „Neu“ und aus dem Untermenü „Verknüpfung“ aus.

In das Feld „Geben sie den Speicherort des Elements ein“, gebt ihr nun den Pfad zu Putty ein, und natürlich den Parameter, mit dem es gestartet werden soll. Ihr könnt eine IP-Adresse angeben, aber auch einen Rechnernamen. Mein Server heißt ja „server01“. Also heißt die Zeile bei mir:

d:\tools\putty.exe server01

Nachdem ihr auf „Weiter“ geklickt habt, gebt ihr der Verknüpfung noch einen vernünftigen Namen, bei mir heißt sie nun „Server 01“. Fertig, ab jetzt braucht ihr nur noch diese Verknüpfung, um euch mit eurem Server zu verbinden.

Erste Verbindung zum Server

Geht nun auf die neue Verknüpfung und drückt Enter. Das Putty-Fenster geht auf, und ein Dialogfeld erscheint.

Dieser englische Dialogtext sagt euch nichts anderes, als dass Putty den Schlüssel dieses Rechners nicht kennt und man sich nicht sicher sein kann, dass es wirklich der Rechner ist, den ihr erreichen wolltet. Da ich mir aber sicher bin, dass es mein Server ist, klicke ich auf „Ja“, wodurch der Schlüssel gespeichert wird und diese Frage nie wieder kommt.

Anschließend werdet ihr nach Benutzernamen und Passwort gefragt. Loggt euch ein, und es erscheint folgender Bildschirm:

Linux server01 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Oct 15 00:53:50 2014
benutzer@server01:~$

Der obere Text ist eigentlich erst mal uninteressant. Wichtig ist die letzte Zeile. Die sagt nämlich folgendes:

  • benutzer: Der Benutzername, mit dem ihr angemeldet seid.
  • @server01: Der Rechner, an dem ihr angemeldet seid.
  • :~: Das Verzeichnis, in dem ihr euch gerade befindet. Die ~ (Tilde) sagt euch, ihr seid in eurem eigenen Home-Verzeichniss.
  • $: Das Dollar-Zeichen sagt euch, dass ihr als normaler User verbunden seid. Als Root würde da ein # (Nummernzeichen) stehen.

So, und nun könnten wir ja eigentlich schon mal paar Befehle eingeben…

Zeit synchronisieren

Ihr erinnert euch? Bei der Installation gab es ja mal so paar Probleme mit der Internet-Zeit-Synchronisation. Nun, stellt sich raus, dass ich dem Server das noch beibringen muss… Also muss das Paket nachinstalliert werden. Benötigt wird das Paket NTP, Network Time Protocol. Und das installiert man folgendermaßen:

Da dies ein administrativer Eingriff ist, muss man dies als Admin tun. Also kommt vor den Befehl der Zusatz sudo. Das zeigt dem System, dass nun mit Admin-Rechten gearbeitet wird. Um das Paket also zu installieren, sind folgende 2 Befehle nötig:

sudo apt-get update

Dieser Befehl aktualisiert die Paketquellen und lädt die Liste verfügbarer Pakete runter. Gleichzeitig wird eine Datenbank erstellt, in der das System vermerkt, was schon installiert ist, und was nicht und deren Abhängigkeiten.

sudo apt-get install ntp

Dieses installiert nun das Paket NTP und alle seine Abhängigkeiten. Die nachfrage, ob man dies nun installieren möchte, bestätigt man mit Y.

Nachdem der NTP-Dienst installiert wurde, stimmt nun auch endlich meine Uhrzeit, die man immer mit dem Befehl „Date“ abfragen kann.

Kurze Anmerkung zu apt-get

Das Programm, oder Paket, apt-get ist einer der Paketmanager, mit dem man Pakete installieren, deinstallieren, Systemupdates durchführen und vieles mehr machen kann. Auf alle Aspekte des Pakets einzugehen würde zu weit führen.

Ihr könnt übrigens jeder Zeit eine Handbuchseite zu einem Paket oder Befehl aufrufen. Dazu gebt ihr einfach „man“ und den Befehl, über den ihr die Seite sehen wollt, ein. Für apt-get hieße die Zeile z. B.:

man apt-get

BRLTTY entfernen

Wieso denn das jetzt? Nun, BRLTTY hat nur einen Zweck, und zwar die Braillezeile anzusprechen. Da aber niemand mehr direkt am Server arbeiten wird, ist es auch nicht nötig, dass es permanent im Hintergrund läuft. Da ich Linux ja mit Braillezeile installiert habe, hat es BRLTTY auch standardmäßig installiert. Der einzige Grund, je wieder einen Monitor und Tastatur an den Server anzuschließen ist, wenn ich ihn über das Netzwerk nicht mehr erreichen kann. Und dann wird wahrscheinlich sowieso eine Neuinstallation fällig. Daher glaube ich, kann BRLTTY auch runter vom System. Und das geht mit diesem Befehl:

sudo apt-get remove brltty

Abhängigkeiten bereinigen

Wenn man ein Paket entfernt, wird oft eben nur dieses entfernt. Die anderen Pakete, die mit dem eigentlichen Paket installiert wurden, weil sie voneinander abhängig sind, wurden nicht entfernt. Daher müsst ihr gelegentlich mal gucken, ob es nicht mehr benötigte Pakete auf eurem Server gibt. Diese können in einem Rutsch ganz leicht mit folgendem Befehl entfernt werden:

sudo apt-get autoremove

Das müsst ihr nicht oft machen, aber es kann nicht schaden, diesen Befehl auszuführen, wenn ihr mal mehrere Pakete deinstalliert habt. Diese unbenötigten Pakete stören zwar nicht, müssen aber auch nicht unbedingt auf dem Server bleiben.

System update

Eigentlich sollte man meinen, das sei jetzt bei einem gerade aus dem Internet installierten System nicht nötig. Vielleicht ist es das tatsächlich nicht. Aber es würde doch mein Gewissen beruhigen, mal nach Updates zu gucken. Auch hierzu sind zwei Befehle nötig.

sudo apt-get update

Ja, hatten wir eben schon mal, aber wenn wir später mal wieder ein Update machen wollen, müssen beide Befehle sein.

sudo apt-get upgrade

Dieser Befehl führt das eigentliche Update durch.

OK, war nicht nötig, keine Updates vorhanden.

Und eine Vorschau auf den nächsten Artikel erspare ich mir, weil ich wahrscheinlich sowieso wieder was ganz anderes dazwischen schieben werde, als ich vor hatte… 🙂