Hsadmin: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
(→‎Passwort und Konfiguration des hsadmin Command-Line-Client: Anmerkung Leistungsschwacher hsadmin Server entfernt)
(link)
 
(14 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{HSDoku-Links}}
{{Kerndoku|https://doc.hostsharing.net/#kap-hsadmin-einstieg}}
{{DISPLAYTITLE:hsadmin}}


[https://admin.hostsharing.net/ hsadmin] ist ein von HS entwickltes Werkzeug. Es dient zur Konfiguration für Internet-Server und paßt speziell zu der flexiblen Konfiguration der Webspace-Angebote der [http://www.hostsharing.net Hostsharing eG].
Am 25. Juli 2016 wurde eine neue Web-Oberfläche in Betrieb genommen.
Es ist ein Konfigurationswerkzeug für das eigene Paket. Es kann über einen Webbrowser, von der Kommandozeile der Linux Shell und per Programmierschnittstelle benutzt werden.


== Allgemeines ==
Eine Einführung in die Bedienung findet Ihr auf der Seite [[HsadminWeb]]
Die Bedienung erfolgt über:
* ein [[WebFrontend]] – auch für die Kunden eines Resellers oder das eigene Personal),
* das Kommandozeilen-Frontend [[Hsadmin#Command-Line-Client | hsadmin CLI]] (zum Beispiel für Skripte), oder
* eine [[Hsadmin/API | Programmierschnittstelle]] (für eigene, selbst gestaltete Frontends).
Das Kernsystem ermöglicht von der Kundenverwaltung (Kontaktdaten, Rechnungen, gebuchte Pakete und so weiter) über die Paketverwaltung (Unix-Accounts, Datenbanken, Datenbank-User etc.) und der Domainverwaltung (E-Mail-Adressen einrichten und so weiter) ein breites Spektrum der Konfiguration.


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:
 
{|class="wikitable"
|- class="hintergrundfarbe5"
!Modul !!Beschreibung / Anleitung
|-
|WebFrontend||Die Funktionen der Kommandozeile per Browser [[WebFrontend]]
|-
|Benutzerverwaltung||Anleitung für Kommandozeile. Beschreibung steht in [[User]]
|-
|E-Mail Adressen||Anleitung für Kommandozeile. Beschreibung steht in [[hsadmin-mail|E-Mail]]
|-
|E-Mail Alias||Anleitung für Kommandozeile. Beschreibung steht in [[Aliases]]
|-
|Domain Status||Anleitung für Kommandozeile. Beschreibung steht in [[domains|Domain]]
|-
|MySQL User||Anleitung für Kommandozeile. Beschreibung steht in [[Datenbanken]]
|-
|MySQL Datenbanken||Anleitung für Kommandozeile. Beschreibung steht in [[Datenbanken]]
|-
|Postgres User||Anleitung für Kommandozeile. Beschreibung steht in [[Datenbanken]]
|-
|Postgres Datenbanken||Anleitung für Kommandozeile. Beschreibung steht in [[Datenbanken]]
|}
 
== Passwort und Konfiguration des hsadmin Command-Line-Client ==
 
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:
 
<pre>
userName=xyz00
passWord=geheim
passWord.xyz00=geheim
passWord.hsh00-xyz=geheim
</pre>
 
Der Username wird per Default vom Login-User genommen oder kann mit '''-u/--user:''' angegeben werden. Die Reihenfolge ist:
# Username von der Kommandozeile (-u/--user:),
# der UserName aus dem Eintrag userName=... in der .hsadmin.conf,
# der Login-Username.
 
Das Passwort wird nur benötigt, falls es für den jeweiligen USer kein gültiges TGT mehr in der .hsadmin.tgt mehr gibt.
Es wird zunächst in der .hsadmin.conf aus dem konkreten Eintrag (passWord.xyz=...), dann aus dem allgemeinen (passWord=...) genommen,
falls es nicht gefunden wird, wird es erfragt. Bevor Scripte ausgeführt werden, oder die Ein- oder Ausgabe von hsadmin umleitet werden,
sollte also immer für ein gültiges TGT gesorgt werden, z.B. durch Aufruf einer Dummy.Funktion wie:
<pre>
    hsadmin -c modules.version
</pre>
 
Man kann sich das Programm hsadmin auch lokal installieren. Dazu gehört ein Shell-Startscript und ein jar-File. Es wird Java6 benötigt. Dies sind die benötigten Datein, sie können von einem HS-Server kopiert werden:
 
:'''/usr/local/bin/hsadmin'''
:'''/usr/local/lib/hostsharing/hsadmin/HSadminCLI.jar'''
 
Das Startscript steht derzeit leider nur für UNIX-ähnliche Systeme als bash-Script zur Verfügung. Eine Windows-Version sollte sich aber leicht erstellen lassen.
 
== Verwendung des hsadmin Command-Line-Client ==
die Optionen des Kommandozeilen-Frontend (CLI) für die Arbeit auf der [[Shell]] erscheinen dem einen oder anderen evtl. etwas umständlich. Das hat folgende Bewandnis:
 
Eine Anforderung war, dass das hsadmin CLI auch lokal installieren werden 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 und gibt einfach dessen Ausgabe wieder aus - ohne diese großartig zu interpretieren.
 
Der Grundaufbau für den Aufruf von der [[Shell]] aus ist:
 
:'''hsadmin LOKALE-OPTIONEN GLOBAL-REMOTE-OPTIONEN MODUL.FUNKTION REMOTE-OPTIONEN OIDS ...'''
 
Die lokalen (vom hsadmin CLI selbst interpretierten) Optionen sind:
 
{| class="wikitable"
|- class="hintergrundfarbe5"
! Option !! Bedeutung lokale Option
|-
| -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
:emailaddress - für die MailAdressen Verwaltung
:emailalias - für die MailAlias Verwaltung
:domain - Domainverwaltung (aktuell nur eine Anzeige)
:mysqluser - Datenbank-Benutzerverwaltung
:postgresqluser - siehe mysqluser
:mysqldb - Datenbankverwaltung
:postgresqldb - siehe mysqldb
 
Dann folgen die Parameter für diesen Funktionsaufruf. Hier gibt es folgende Gruppen:
 
{| class="wikitable"
|- class="hintergrundfarbe5"
! Parameter !! Bedeutung für den Aufruf der Funktion
|-
| -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.<br/>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).
 
== Status von Änderungen abfragen ==
 
<pre>
hsadmin -c q.search | sort -n -t'|' -k2
</pre>
So werden die letzten Aktion sortiert angezeigt, bitte besonders den "Status" beachten.
 
'''Hinweis:''' Die Spaltenreihenfolge (und damit auch das "-k2") ist nicht wirklich gesteuert und der default wird sich auch sicherlich nochmal ändern.
Wer zuverlässige Spalten braucht, sollte das Display-Format angeben!
 
<!--
== Links ==
* [https://project.hostsharing.net/projects/hsadmin/wiki Entwicklerdokumentaton]
-->
----
[[Kategorie:HSDoku]]
[[Kategorie:hsadmin]]
[[Kategorie:Glossar]]
[[Kategorie:Glossar]]

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

---