Hsadmin

Aus Hostsharing Wiki
Version vom 18. Mai 2009, 08:02 Uhr von Chg00-hsdoku (Diskussion | Beiträge) (PLUS - am ende der Zeile echo'--set)
Zur Navigation springen Zur Suche springen

hsadmin ist ein in Entwicklung befindliches Konfigurations-Werkzeug für Internet-Server, das speziell zu der flexiblen Konfiguration der Webspace-Angebote der Hostsharing eG passen soll.

Die Bedienung erfolgt über einen Web-Frontend für die Kunden und Personal, einen Kommandozeilen-Frontend (zum Beispiel für Skripte), oder über eine Programmierschnittstelle (für weitere Frontends). Das Kernsystem wird von der Kundenverwaltung (Kontaktdaten, Rechnungen, gebuchte Pakete und so weiter) über die Paketverwaltung (Unix-Accounts, Datenbanken, Datenbank-User etc.) und der Domainverwaltung (registrieren, aufschalten, E-Mail-Adressen einrichten und so weiter) ein breites Spektrum der Konfiguration ermöglichen. Es wird möglich sein, weitere Module entweder zentral, oder auch für einzelne Reseller hinzuzufügen. Das "Look-and-Feel" des Web-Fronts wird ebenfalls von Resellern anpassbar sein.

hsadmin ist OpenSource (GPL) und basiert im Wesentlichen auf der Java Enterprise Edition. Es besteht aus einem Web-Client (JSP/JSF) und einem Kommandozeilen-Client (C Programming language) einem Server (EJB3) für die Anwendungslogik und einem Queue-Server für die Systemkommandos (JMS-Client). Die Zugangskontrolle erfolgt orientiert an Rollen und den Datensätzen im Server (an der EJB3-Schnittstelle). Direkte root-Rechte werden nur von dem relativ kleinen Queue-Server benötigt.


hsadmin - user

Damit wir, die Entwickler und Hostmaster, uns auf einen Punkt nach dem anderen konzentrieren können, ist zur Zeit nur die Bedienung per Kommandozeile freigeschaltet. Das Kommandozeilen-Programm ist dabei generisch für alle zu verwaltenden Module. Bezüglich der Benutzerverwaltung wird es wie folgt bedient (die meisten Befehle machen nur für die Paket-Administratoren Sinn):

Die Datenfelder aller sichtbaren UNIX-User auflisten:

hsadmin -c user.search

Die Datenfelder name, comment und shell mit ":" getrennt ausgeben:

hsadmin -c user.search -d '${name}:${comment}:${shell}\n'

Einen UNIX-User (z.B. für eine Mailbox) hinzufügen:

Entweder nach wie vor mit /usr/local/bin/newuser oder:
hsadmin - <<EOF
--call:user.add
--set:password=...
--set:name=xyz00-test
--set:shell=/bin/bash
EOF
Hierbei habe ich zum einen die Langform der Optionen (--set: statt -s) verwendet, zum anderen ein temporäres Respose-File, damit das Passwort nicht über die Kommando-Zeile in der Prozessliste landet - wo es alle einsehen könnten. Beim Response-File muss exakt ein Parameter je Zeile angegeben werden, d.h. bei der Kurzform so:
-c
user.add
-s
shell=/bin/bash

Die Shell eines UNIX-Users ändern:

hsadmin -c user.update -s shell=/usr/bin/passwd xyz00-test

Das Passwort eines UNIX-Users ändern:

echo '--set:password=...' | hsadmin -c user.update xyz00-test -

Einen UNIX-User löschen:

hsadmin -c user.delete xyz00-test

Das eigene Passwort muss dabei nur einmalig pro Session eingegeben werden. Ein sogenanntes Ticket-Granting-Ticket (TGT) wird dafür in ~/hsadmin.tgt gespeichert.

Zudem gibt es eine Konfigurations-Datei ~/.hsadmin.conf, in der i.d.R. folgende Einträge sinnvoll sind:

userName=xyz00
passWord=geheim

Der Username wird per Default vom Login-User genommen oder kann mit -u/--user: angegeben werden. Das Passwort ggf. erfragt, falls kein gültiges TGT mehr vorliegt.

Man kann sich das Programm hsadmin auch lokal installieren. Dazu gehört ein Shell-Startscript und ein jar-File. Es wird Java6 benötigt.

/usr/local/bin/hsadmin
/usr/local/lib/hostsharing/hsadmin/HSadminCLI.jar

Eine Anmerkung noch: hsadmin läuft dezeit noch mangels besserer Alternativen auf einem sehr leistungsschwachen Server. Wir bitten daher von großen Experimenten abzusehen und nur wirkliche Aufgaben über die neuen Schnittstelle auszuführen.

Weitere Module und der Web-Client folgen in den nächsten Tagen.


Quelle: http://www.hsadmin.de/prj/hsadmin