Hsadmin
Einstieg |
Hsadmin |
Pakete |
User |
Domains |
Cron |
Logging |
E-Mail |
WWW
Datenbanken |
Backup & Restore |
Installationsanleitungen |
FAQ |
Bugtracker
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.
hsadmin
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.
Aktuell freigeschaltete Module
Mit hsadmin können derzeit folgende Verwaltungsaufgaben erledigt werden:
Modul | Beschreibung / Anleitung |
---|---|
Benutzerverwaltung | Derzeit nur per Kommandozeile. Beschreibung steht in User |
E-Mail Adressen | Derzeit nur per Kommandozeile. Beschreibung steht in E-Mail |
Passwort und Konfiguration von hsadmin
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 kann man eine Konfigurations-Datei ~/.hsadmin.conf anlegen,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.
Command-Line-Client
die Optionen des (CLI) erscheinen etwas umständlich. Das hat folgende Bewandnis:
Eine Anforderung war, dass das hsadmin CLI auch lokal installieren kann und es dennoch neue Module bedienen kann. D.h. das CLI hat inhaltlich kaum Informationen und leitet alles nach "Schema-F" an den Server weiter, sowie gibt einfach dessen Ausgabe wieder aus - ohne diese großartig zu interpretieren.
Der Grundaufbau ist:
- hsadmin LOKALE-OPTIONEN \
- GLOBAL-REMOTE-OPTIONEN \
- MODUL.FUNKTION REMOTE-OPTIONEN OIDS ...
Die lokalen (vom hsadmin CLI selbst interpretierten) Optionen sind:
- -u /--user:
- für den UNIX-Usernamen,
- unter dem das Programm arbeiten soll
- -v /--version
- gibt die Versionsnummer des hsadmin CLI aus
- -V /--verbosity:
- gibt den Gesprächtigkeits-Level 0-2 an (zum Debuggen)
- -
- liest weitere Remote-Parameter von stdin ein
Für die globalen Optionen siehe weiter unten.
Der eigentliche Funktionsaufruf wird mit -c /--call: eingeleitet. Dann folgt ein Modulname und ein Funktionsname, z.B. "user.search". Derzeit sind die folgenden Module freigegeben:
- q - für die Auftrags-Queue in den Hives
- user - für die UNIX-User inkl. Mailboxen
Anmerkung:
Da die anderen Module teilweise schon im Live-Test sind, gibt es sie schon. Wer sie aber verwendet, wird ggf. mit unwiderruflichem Datenverlust bestraft ;-)
Dann folgen die Parameter für diesen Funktionsaufruf. Hier gibt es folgende Gruppen:
- -w /--where:feld=wert
- Abfrage nach einem bestimmten Wert eines bestimmten Feldes.
- -s /--set:
- Setzen des Wertes eines bestimmten Feldes.
- (Wird ggf. ignoriert, z.b. bei *.search)
- -d /--display:format
- Spezifiziert das Ausgabeformat.
- (Hat bei Funktionen ohne Daten-Ausgabe keine Wirkung.)
Die OIDS sind direkte Objekt-Identifier wie der Username (xyz00-test), der Paketname (xyz00), die Domain (example.org) oder die E-Mail-Adresse (test@exampl.org). Es können mehrere angegeben werden. Im Prinzip ist das nur eine Kurzform der jeweiligen -w Option, nur dass eben auch mehrere angegeben werden können.
Die globalen Optionen entsprechen den o.g. -w/-s/-d, nur dass sie für alle im selben hsadmin-Aufruf folgenden Funktionen gelten:
- -W /--globalWhere:feld.wert
- -S /--globalSet:feld.wert
- -D /--globalDisplay:format
Ein paar Fallen:
- Wenn man zwar Funktionsaufrufe per stdin in das CLI hineingibt,
aber den "-" vergisst, dann werden diese einfach ignoriert.
stdin wird aber ggf. auch anderweitig gebraucht, weshalb
"-" nicht automatisch angenommen wird.
- Wenn man gleich den ersten Aufruf mit "-" macht, wird dies derzeit noch als Passwort eingelesen, was natürlich dann schon zu einem Login-Fehler führt. Trick:
Entweder das Passwort in der ~/.hsadmin.conf hinterlegen
oder zunächst irgendeine andere Funktion aufrufen, die das Passwort abfragt und das TGT speichert.
Die Error-Codes ($? in bash-Scripten) sind derzeit noch recht unspezifisch. Geplant ist eine Unterscheidung zwischen wirklich unbekannten Fehlern (z.B. Fehlern in hsadmin), Remote- Kommunikations-Fehlern (wo man es dann einfach nochmal probieren könnte) und fachlichen Fehlern (bei denen man dann wohl hsadmin falsch bedient hat).
hsadmin Status von Änderungen
hsadmin -c q.search
Hier werden die letzen Aktion angezeigt, bitte den "Status" und "finished" beachten.
hsadmin Entwicklung
hsadmin wird ständig weiter entwickelt. Hier finden sich die Details:
http://www.hsadmin.de/prj/hsadmin