Beim Einrichten des CONZEPT 16-Servers unter Linux gibt es einige Dinge zu berücksichtigen. Es fängt bereits damit an, dass beim Installieren des CONZEPT 16-Servers über die CONZEPT 16-Setuproutine keine Installation im eigentlichen Sinne durchgeführt wird. Stattdessen wird das Archiv mit den notwendigen Dateien lediglich extrahiert. In diesem Artikel möchten wir die Besonderheiten der Installation näher beleuchten.
Installationsroutine
Nach der Durchführung des Setups des Servers für Linux befindet sich im Zielverzeichnis unter /Server/Linux die Datei c16_server_lnx.tar.gz. Hierbei handelt es sich um ein mit gzip komprimiertes TAR-Archiv. Dieses Archiv beinhaltet alle Dateien, die zum Betrieb des Servers notwendig sind. Alternativ zur Installation über die Oberfäche der Setuo-Routine lässt sich das Archiv auch mit dem Kommandozeilenargument /srv=2 extrahieren:
c16_setup_*.exe /cpn_action=extract /cpn_srv=2 /dir=<Pfad>
Übertragen des Archivs auf das Linux-System
Der nächste Schritt besteht in dem Übertragen des Archivs auf das gewünschte Linux-System. Je nach vorhandener Infrastruktur gibt es hier verschiedene Möglichkeiten. Eine komfortable Methode stellt die Verwendung der freien Software WinSCP (Windows Secure Copy) dar. Bei diesem Programm handelt es sich um einen grafischen SFTP-Client für Windows. Damit die Datei über SFTP (Secure File Transfer Protocol) übertragen werden kann, muss außerdem auf dem Linux-System der SSH-Server gestartet sein. In aller Regel ist auf den Systemen bereits openssh installiert und damit ist auch der ssh-Daemon verfügbar. Sollte der Daemon noch nicht laufen, kann dieser über das Script /etc/init.d/sshd
mit dem Argument "start" gestartet werden. Deweiteren ist darauf zu achten, dass die Firewall den TCP-Port 22 nicht blockiert.
Alternativ kann linuxseitig auch direkt auf eine Windows-Freigabe zugegriffen werden, die Aktivierung erfolgt über den "mount"-Befehl.
Linux Konsole
Nach dem Übertragen benötigen wir für die weiteren Schritte eine Konsole auf dem Linux-System. Eine Möglichkeit besteht in der Verwendung des ebenfalls freien SSH-, Telnet- und Rlogin-Programms PuTTY.
Entpacken des TAR-Archivs auf dem Linux-System
Als nächstes muss das Archiv entpackt werden. Mit Hilfe des Programms tar, welches unter Linux standardmäßig vorhanden ist, werden die einzelnen Programmdateien entpackt.
Beispiel:
tar xvfz c16_server_lnx.tar.gz
In das Programm-Verzeichnis des Servers gehört auch die Lizenzdatei (c16.lic) und bei Verwendung einer internetbasierten Lizenz die IDN-Datei.
Zusätzlich wird unterhalb des Installations-Verzeichnisses das Verzeichnis "driver" erzeugt. In diesem befinden sich die notwendigen Treiber für den CONZEPT 16-Lizenz-Dongle.
Starten des CONZEPT 16-Servers
Das Starten des Servers erfolgt über den Aufruf des Service-Prozesses, der als 32-Bit (c16_serv_svc_l32) und 64-Bit (c16_serv_svc_l64) Executable zur Verfügung steht.
Beispiel:
Starten des Servers auf einem 64-Bit-System
./c16_serv_svc_l64 -wait
Beim obigen Aufruf wurde das optionale Argument -wait angegeben. In diesem Fall kehrt der Aufruf erst zurück, wenn der Service-Prozess erfolgreich gestartet werden konnte. Der Service-Prozess wird unter Linux als Daemon gestartet, das heißt der Service-Prozess hängt sich direkt an dem Init-Prozess des Betriebssystems an und ist somit von den Benutzer-Sessions unabhängig.
Im Gegensatz zum Server unter Windows, startet der CONZEPT 16-Server beim Booten des Linux-Systems nicht automatisch. Damit der Server automatisch gestartet und gestoppt weden kann, muss ein sogenanntes Init-Skript definiert werden. Da Aufbau und Verarbeitung eines Init-Skripts je nach Linux-Distribution abweichen kann, beziehen wir uns in diesem Artikel auf die Distribution SUSE. Wir haben ein solches Skript bereits vorbereitet, es kann am Ende des Artikels heruntergeladen werden.
Init-Skript
Die Aufgabe eines Init-Skripts besteht darin, einen Service zu zu starten und zu beenden. Der Aufbau eines Init-Skripts ist vorgegeben und muss LSB (Linux Standard Base)-konform gehalten sein. In aller Regel bietet das Skript außer den Aktionen Start und Stopp, die Möglichkeit den Status des Prozesses zu überprüfen (läuft oder ist beendet) und einen Neustart des Services zu initiieren. Bei den Init-Skripten handelt es sich um normale Shellscripte, die auch manuell aufgerufen werden können. Die eigentliche Aufgabe besteht allerdings darin, vom System ausgeführt zu werden. Einen guten Einstieg in die Struktur von Init-Skripten bietet die Vorlage skeleton. Diese Datei befindet sich in dem Verzeichnis /etc/init.d
.
Installation des Init-Skripts
Grundsätzlich befiinden sich sämtliche Init-Skripte in dem dafür vorgesehenen Verzeichnis /etc/init.d
. Desweiteren müssen die Skripte ausführbar sein. Über die Anweisung chmod 755 <Name des Skripts>
können die Ausführungsrechte gesetzt werden. Damit das Skript vom System ausgeführt werden kann, muss dieses beim System "eingetragen" werden. Diese Aufgabe übernimmt das Programm insserv, in dem es das Skript in den jeweiligen Runlevel-Verzeichnissen verlinkt. Dazu wertet das Programm insserv den Kommentar-Block des Skripts aus.
Init-Skript installieren:
insserv /etc/init.d/<Name des Skripts>
Je nach Linux-Distribution stehen für das Installieren der Init-Skripts unterschiedliche Utilities zur Verfügung:
SUSE
insserv
Debian
update-rc.d und ab der Debian Version 6 zusätzlich insserv
Red Hat
chkconfig
In der Zeile Default-Start des Kommentar-Blocks wird der Runlevel, für den Service aktiviert werden soll, definiert.
Kommentar-Block:
### BEGIN INIT INFO
# Provides: foo
# Required-Start: $network
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start: 3 5
# Default-Stop:
# Short-Description: start and stop Service
### END INIT INFO
Im obigen Beispiel wird das Script foo für die Runlevel 3 und 5 aktiviert. Üblicherweise wird SUSE-Linux in einem der beiden Runlevel gestartet. In beiden Leveln befindet sich das System im Multiuser-Modus mit Netzwerkunterstützung. Bei Runlevel 3 allerdings ohne grafische Oberfläche. In welchem Runlevel sich das System aktuell befindet, kann über das shell Kommando runlevel ermittelt werden. Der für das System konfigurierte Standard-Runlevel ist in der Datei /etc/inittab
definiert.
Aufgrund der Angaben in der Zeile Default-Start, legt das Programm insserv in den Runlevel-Verzeichnissen /etc/init.d/rc3.d
und /etc/init.d/rc5.d
symbolische Links auf das Init-Skript Foo an. In beiden Verzeichnissen gibt es jeweils zwei Links. Eines zum Starten des Services (Name des Links beginnt mit S) und eines zum Stoppen (Name des Links beginnt mit K) des Services. Bei der Initialisierung der Runlevel 3 oder 5 ruft das System das Skript foo mit dem Argument start auf, beim Beenden des Runlevels mit dem Argument stop. Was bei den Aktionen start und stop durchgeführt werden soll, ist in dem Init-Skript definiert:
case "$1" in
start)
# Starten des Service
startproc $foo
;;
stop)
# Stoppen des Service
killproc -TERM $foo
;;
esac
Wie bereits erwähnt stellen wir mit diesem Artikel ein Init-Skript für den CONZEPT 16-Server zur Verfügung. Dieses kann unter SUSE ohne weitere Änderungen verwendet werden. Die einzige Anpassung besteht im Setzen der Variablen "c16_dir" auf den Installationspfad des Servers.
2 Antworten
@Th.Eichele
1)
Das Linux-Archiv ist Bestandteil der Installationsroutine. Für das Extrahieren ist daher ein Windows Rechner notwendig.
2)
Ja, vor dem Aktualisieren der Binaries des CONZEPT 16-Servers sollte dieser gestoppt werden.
1.) d.h. man braucht immer zunächst einen Windows-Rechner um an das Archiv ranzukommen.
2.) muß zum Updaten dann lediglich der Service gestoppt, das neue Archiv entpackt und der Service wieder gestartet werden ?