Jan Ulrich Hasecke
2020-01-16 eaea868cdd1332671051906d64bc3c0c79aa8c23
source/referenz/hsadmin/skript.rst
@@ -4,12 +4,11 @@
HSAdmin über Skripte steuern
============================
.. todo:: MOS: In diesem Kapitel plötzlich Wechsel der Ansprache ("Wir")
In :numref:`kap-hsadmin-syntax` wurde die Option :option:`-f` erwähnt, die gesetzt werden kann, um HSAdmin eine Datei zu übergeben, in der sich die Befehle befinden.
Die Option ermöglicht es, ohne großen Aufwand Skriptdateien zu pflegen, mit denen wiederkehrende Aufgaben bequem erledigt werden können.
Dieses Kapitel zeigt, wie Sie die Anlage einer neuen Wordpress-Website mit Hilfe eines solchen Skripts vereinfachen können.
In :numref:`kap-hsadmin-syntax` haben wir die Option :option:`-f` erwähnt, die wir setzen können, um HSAdmin eine Datei zu übergeben, in der sich die Befehle befinden.
Dies ermöglicht es uns, ohne großen Aufwand Skriptdateien zu pflegen, mit denen wir wiederkehrende Aufgaben bequem erledigen können.
In diesem Kapitel zeigen wir, wie Sie die Anlage einer neuen Wordpress-Website mit Hilfe eines solchen Skripts vereinfachen können.
Bevor man die Wordpress-Software installiert, müssen mehrere Schritte erledigt sein.
Bevor Sie die eigentliche Wordpress-Software installiert, müssen mehrere Schritte auf der Hostsharing-Plattform erledigt sein.
1. Es existiert ein :role:`Domain-Admin` bzw. es wird ein neuer Domain-Admin angelegt.
2. Es wird eine Domain erstellt und dem Domain-Admin zugewiesen.
@@ -68,11 +67,7 @@
   Beim Löschen müssen Sie die Reihenfolge umkehren: Datenbank löschen, Datenbank-Nutzer löschen, Domain löschen, Domain-Admin löschen. 
   
Noch bequemer ist es, die notwendigen Benutzer, Domains und Datenbanken mit einem Skript anzulegen.
.. todo:: MOS: Ist hier statt Skript Programm gemeint? Weil oben wurde doch gerade bequeme Skripten erklärt.
Sie können HSAdmin mit Javascript und über eine Python-API ansprechen.
Noch bequemer ist es, die notwendigen Benutzer, Domains und Datenbanken mit Hilfe eines ausführlicheren JS-Skripts oder über die Python-API anzulegen.
HSAdmin mit Javascript ansprechen 
=================================
@@ -95,14 +90,18 @@
Der Namen des Domain-Admin ergibt sich aus dem Namen der Domain.
Bei einer Domain, die einen Bindestrich enthält, muss dieser durch einen Unterstrich ersetzt werden, da Benutzernamen nur einen Bindestrich enthalten dürfen.
Loggen Sie sich als Paket-Admin ein und rufen Sie das Skript folgendermaßen auf:
Das Skript wird im Benutzerverzeichnis des Paket-Admin gespeichert und ausführbar gemacht:
.. code-block:: console
   xyz00@h50:~$ chmod u+x createdomainandadmin.js
Anschließend können Sie es folgendermaßen aufrufen:
.. code-block:: console
   xyz00@h50:~$ ./createdomainandadmin.js my-domain.de
   created domain my-domain.de with domainadmin xyz00-my_domain.de and password slo%haY=
.. todo:: MOS: Dieses Skript funktioniert so mMn nur, wenn das executable-Bit (chmod u+x createdomainadmin.js) vorher gesetzt wurde. Daher würde ich es hier mit hsscript createdomainandadmin.js my-domain.de aufrufen. Gleiches gilt ggfs. auch für die weiteren Skripte unten
Wenn Sie alle Domains mit einem einzigen Domain-Admin verwalten, können Sie den Benutzernamen des Domain-Admin hart kodieren.
Zeile 18 lautet dann:
@@ -133,6 +132,7 @@
   Merken Sie sich die Passworte, da Sie diese später benötigen.
   Bei einer Datenbank-Anwendungen müssen Sie bei der Konfiguration den Datenbank-Benutzer und sein Passwort angeben.
.. _kap-python-api:
Nutzung der Python-API
======================
@@ -214,18 +214,20 @@
Um das API-Objekt zu erzeugen, benötigen wir das Passwort für den übergebenen Paket-Admin.
Wir lesen in Zeile 11 das Passwort aus dem verschlüsselten Passwort-Tresor des Kommandozeilenprogramms :command:`pass` aus und speichern es in der Variablen ``pw``.
Weitere Informationen zu dem Programm finden Sie auf der Website https://www.passwordstore.org/.
Sie können natürlich andere Programme wählen, um ein Passwort aus einem Passwort-Tresor auszulesen.
Falls Sie nur ein Paket bei Hostsharing verwalten, können Sie das Passwort auch direkt ins Skript eintragen.
Aus Sicherheitsgründen sollten Sie dies möglichst vermeiden.
.. todo:: MOS: Was ist "pass" für ein Kommandozeilenprogramm? Auf dem Hive h20 z.B: ist es nicht installiert
Anschließend erzeugt das Skript das API-Objekt, wobei es als Credentials den Namen des Paket-Admin und sein Passwort übergibt.
Der Namen des Paket-Admin ist identisch mit dem Paket, in dem die Domain angelegt werden soll.
Anschließend erzeugen wir das API-Objekt, wobei wir als Credentials den Namen des Paket-Admin und sein Passwort übergeben.
Der Namen des Paket-Admin ist identisch mit dem Paket, in dem wir die Domain anlegen wollen.
Danach definieren wir einen Zufallsgenerator, mit dem wir die Passworte erzeugen, die wir später benötigen.
Danach wird ein Zufallsgenerator definiert, mit die Passworte erzeugt werden, die später benötigt werden.
In Zeile 27 und 28 werden die Passworte für den Domain-Admin und  den Datenbank-Nutzer erzeugt und in Variablen gespeichert.
Direkt anschließend erzeugen wir aus den beim Aufruf übergebenen Werten die Namen für den Domain-Admin, den Datenbank-Nutzer und die Datenbank.
Direkt anschließend erzeugt das Skript aus den beim Aufruf übergebenen Werten die Namen für den Domain-Admin, den Datenbank-Nutzer und die Datenbank.
In den Zeilen 33 bis 36 legen wir den Domain-Admin, die Domain, den Datenbank-Nutzer und die Datenbank an.
In den Zeilen 33 bis 36 werden der Domain-Admin, die Domain, den Datenbank-Nutzer und die Datenbank angelegt.
Und zum Schluss geben wir alle Daten aus.
Und zum Schluss gibt das Skript alle Daten aus.
Idealerweise würde ein solches Skript die neuen Benutzernamen mit den jeweiligen Passworten in den Passwort-Tresor eintragen, sodass wir dies nicht mit der Hand erledigen müssen.
Idealerweise würde ein solches Skript die neuen Benutzernamen mit den jeweiligen Passworten in den Passwort-Tresor eintragen, sodass dies nicht mit der Hand erledigt werden muss.