Jeder, der sich auf der IBM i mit TCP/IP-Serverinstanzen und konkret mit Befehlen wie ADDTCPSVR auseinandergesetzt hat, weiß wie unhandlich die Verwaltung dieser sein kann. Service Commander ist ein von IBM-Angestellten entwickeltes open source Werkzeug speziell für die IBM i, welches dazu dient die Erstellung und Verwaltung von TCPSVR-Instanzen und von Anwendungen in der PASE zu vereinfachen.
Installation
Um Service Commander verwenden zu können, müssen folgende PTF-Gruppen installiert sein:
- IBM i 7.4: included with base OS
- IBM i 7.3: Group PTF SF99703 Level 11
- IBM i 7.2: Group PTF SF99702 Level 23
IBM i 7.1 wird nicht unterstützt.
Zudem setzt Service Commander einige yum-Pakete voraus. Darunter gehören “db2util”, “OpenJDK”, “bash“, “GNU coreutils“ und optional “python3-ibm_db“.
Diese Pakete und Service Commander selbst können wir in der Shell der IBM i mit einem Befehl installieren:
yum install db2util openjdk-11 bash coreutils-gnu python3-ibm_db service-commander
Wie man im folgenden Screenshot sehen kann, kann es sein, dass Service Commander einige zusätzliche Abhängigkeiten installieren muss. Ob und was genau zusätzlich installiert wird, hängt vom Stand des Systems ab:
Nach der Installation stehen uns im /QOpenSys/pkgs/bin folgende Befehle zur Verfügung:
- sc ist der eigentliche Service Commander Befehl.
- sc_install_defaults ist ein Hilfsbefehl, welcher Konfigurationsdateien (dazu später mehr) für bestehende Apache-Instanzen erstellen kann.
- scinit ist ein Befehl zur interaktiven Erstellung von Konfigurationsdateien.
- scedit öffnet die Konfigurationsdater des jeweiligen Dienstes im Editor.
Konfigurationsdateien
Service Commander verfolgt erstellte Dienste und ihre notwendigen Informationen, wie z. B. Portnummer, Umgebungsvariablen und Startbefehl in YAML-Dateien. Diese Dateien liegen hauptsächlich unter /home/BENUTZER/.sc/services für benutzerspezifische Dienste oder unter /QOpenSys/etc/sc/services/ für globale Dienste. Für die Erstellung von globalen Objekten muss der Benutzer die *ALLOBJ-Rechte haben.
Eine einfache Konfigurationsdatei kann wie folgt aussehen:
Es ist ohne weiteres möglich, einen Dienst mit einem Texteditor händisch oder programmatisch zu erstellen und zu modifizieren.
sc_install_defaults
Im folgenden Screenshot sehen wir die Ausgabe und den Effekt des Befehls. Der im roten Kasten hervorgehobene Fehler besagt, dass unter /www ein “kgdev“-Ordner existiert aber dieser keiner Apache-Instanz zugewiesen ist. Das kann passieren, wenn man fälschlicherweise dort Ordner abgelegt hat oder eine alte Instanz nicht vollständig gelöscht wurde.
Im blauen Kasten sehen wir, dass der Befehl Konfigurationsdateien für alle gefundenen Instanzen erstellt. In diesem Fall wurden die Dateien in dem benutzerspezifischen Ordner installiert. Um sie global zu erstellen, muss man dem Befehl den „–global“ Parameter mitgeben.
Und im grünen Kasten sehen wir, dass nun auch der „sc list“ Befehl die neuen Instanzen erkennt und anzeigt. Ab diesem Zeitpunkt sind diese Instanzen mit dem Service Commander verwaltbar.
Der sc Befehl
Nun haben wir die Möglichkeit mit sc unsere Dienste zu verwalten und zu steuern.
Mit „sc status“ sehen wir den Status unserer Dienste.
Mit den folgenden Befehlen können wir einen Dienst starten und beenden.
In der Logdatei wird die Ausgabe der aufgerufenen Dienste geschrieben. D. h. also das STDOUT des aufgerufenen Programms.
Mit den Parametern -q kann man die Ausgabe des sc Befehls ausschalten und mit -v kann man mehr Infos ausgeben lassen:
Die vom Service Commander gestarteten Jobs findet man unter dem QUSRWRK Subsystem.
Aufmerksame Leser und Leserinnen werden merken, dass wir hier keine Apache-Instanz, sondern einen Node.js Server, gestartet haben. Im nächsten Artikel werden wir dieses Thema weiter erkunden.
Schlusswort
Hiermit haben wir die Grundlagen des Service Commanders kennengelernt. Meiner Meinung nach ist es eines der besten open source Anwendungen, die speziell für die IBM i entwickelt wurden.
Es zeigt, wie mächtig und elegant die PASE und die Shell-Umgebung der i sein kann. Somit ist es ein weiteres Zeichen dafür, dass wir uns alle mehr mit PASE und den für das AIX-Subsystem zur Verfügung stehenden Anwendungen auseinandersetzen müssen, um das enorme Potenzial der i ausschöpfen zu können.
Der Autor Kerim Güney schreibt regelmäßig für den TechKnowLetter.
Sie erreichen ihn unter:
kerim[at]gueney.io
Sechs Ausgaben des TechKnowLetters erhalten Sie hier für 88 Euro.