Hsadmin: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
(link)
 
(60 dazwischenliegende Versionen von 9 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{HSDoku-Links}}
{{Kerndoku|https://doc.hostsharing.net/#kap-hsadmin-einstieg}}


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.  
Am 25. Juli 2016 wurde eine neue Web-Oberfläche in Betrieb genommen.
== 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.
Eine Einführung in die Bedienung findet Ihr auf der Seite [[HsadminWeb]]
== 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:
---
 
[[Kategorie:Glossar]]
: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.
== 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
 
{{Textkasten|rot|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,<br/> aber den "-" vergisst, dann werden diese einfach ignoriert.<br/>stdin wird aber ggf. auch anderweitig gebraucht, weshalb<br/>"-" 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:<br/>Entweder das Passwort in der ~/.hsadmin.conf hinterlegen<br/>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 Entwicklung ==
 
hsadmin wird ständig weiter entwickelt. Hier finden sich die Details:
 
http://www.hsadmin.de/prj/hsadmin
 
----
[[Kategorie:HSDoku]]
[[Kategorie:hsadmin]]
[[Kategorie:Baustelle]]

Aktuelle Version vom 9. August 2022, 15:37 Uhr


Dieses Thema in der technischen Dokumentation (Kerndoku)

https://doc.hostsharing.net/#kap-hsadmin-einstieg



Am 25. Juli 2016 wurde eine neue Web-Oberfläche in Betrieb genommen.

Eine Einführung in die Bedienung findet Ihr auf der Seite HsadminWeb

---