Hsadmin: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
(link)
 
(59 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
 
=== 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 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.
 
== 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

---