Heimdall Dashboard/Launchpad system

13 Nov 2019 Lesezeit: ~1 Minute

Launchpads oder Plattformen die als Anlaufstelle dienen werden meiner Meinung nach immer wichtiger. In einer Zeit, in welcher wir mit vielen unterschiedlichen Tools arbeiten fällt es vielen schwer den Überblick zu behalten.

Wer sich und seinen Benutzern etwas gutes tun möchte, der kann sich mal das Projekt Heimdall anschauen. Dabei handelt es sich um eine konfigurierbare Lösung um einen diverse Webtools auf einer Oberfläche bereit zu stellen. Dabei kann man auch noch Tags verwenden, ob Werkzeuge zu gruppieren.

Meiner Ansicht nach eine tolle Sache, denn wenn man als Dienstleister unterwegs ist, dann ist jedes Tool das einem Arbeit abnimmt und gleichzeitig wirklich, echt und ernsthaft nützlich ist eine gute Sache.

Quellen und Links


CGI mit NGINX unter CentOS7

12 Nov 2019 Lesezeit: 3 Minuten

CGI ist nicht tot zu bekommen. Warum auch? Ist es doch eine (für den Admin) coole Lösung um mal fix ein BASH Skript zu schreiben und dieses durch eine URL angetriggert auszuführen.

Leider läuft das ganze nicht out-of-the-Box, daher müssen folgende Dinge auf einem CentOS System passieren, damit es funktioniert:

yum install -y fcgiwrap.x86_64 spawn-fcgi

damit haben wir dann schon die Grundlage geschaffen.

  • fcgiwrap ist das tool der Wahl und die als Wrapper für unsere Skripts
  • spawn-fcgi dient uns damit, das es fcgiwrap für uns als deamon startet

Nun müssen wir noch spawn-fcgi konfigurieren, damit es später mit unserem NGINX zusammenspielt:

cat << EOF > /etc/sysconfig/spawn-fcgi
FCGI_SOCKET=/var/run/fcgiwrap.socket
FCGI_PROGRAM=/usr/sbin/fcgiwrap
FCGI_USER=nginx
FCGI_GROUP=nginx
FCGI_EXTRA_OPTIONS="-M 0777"
OPTIONS="-u $FCGI_USER -g $FCGI_GROUP -s $FCGI_SOCKET -S $FCGI_EXTRA_OPTIONS -F 1 -P /var/run/spawn-fcgi.pid -- $FCGI_PROGRAM"
EOF

damit legen wir nach dem Start einen unix socket für die Kommunikatio unter /var/run/fcgiwrap.socket an und übergeben die Rechte an NGINX.

Nun machen wir uns noch ein Skriptverzeichnis:

mkdir -p -m 770 /var/www/cgi-bin
chown -vR nginx:nginx /var/www/cgi-bin

und natürlich müssen wir unserem NGINX beibringen mit dem Dienst zu reden - dazu nutzen wir eine location directive:

  location / {
    root /var/www/cgi-bin;
    fastcgi_intercept_errors on;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
    fastcgi_pass unix:/var/run/fcgiwrap.socket;
  }

im Anschluss müssen wir unsere Dienste noch aktualisieren:

systemctl enable spawn-fcgi
systemctl start spawn-fcgi
systemctl restart nginx

von nun an sollten wir in der Lage sein Skripte unter /var/www/cgi-bin über den Aufruf innerhalb der URL anzusprechen und zur Ausführung zu bewegen. Ein Skript sollte übrigens in etwa so beginnen:

#!/bin/bash

echo "Content-type: text/html"
echo ""

echo "<html>"
echo "<head>"
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">"
echo "<title>Bash CGI script</title>"
echo "</head>"
echo "<body>"
echo ""
echo ""
echo ""
echo "</body>"
echo "</html>"