Jan Ulrich Hasecke
2019-11-14 f7e338054717e6e5e27214f5b9e4cacd37427ec5
JS-Skripte
3 files added
1 files modified
129 ■■■■■ changed files
source/referenz/hsadmin/createdomain.js 22 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/createdomainandadmin.js 22 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/createuseranddb.js 22 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/skript.rst 63 ●●●●● patch | view | raw | blame | history
source/referenz/hsadmin/createdomain.js
New file
@@ -0,0 +1,22 @@
#!/usr/local/bin/hsscript -f
createDomainAndDomainAdmin(arguments);
function pwGen() {
       var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#%&+!?=";
       var string_length = 8;
       var randomstring = '';
       for (var i=0; i<string_length; i++) {
                  var rnum = Math.floor(Math.random() * chars.length);
                  randomstring += chars.substring(rnum,rnum+1);
              }
       return randomstring;
}
function createDomainAndDomainAdmin(args) {
       var domainName = args[0];
       var userName = 'xyz00-doms';
       var randomPassword = pwGen();
       var createdUser = user.add({set:{name:userName,password:randomPassword,shell:'/bin/bash'}});
       var createdDomain = domain.add({set:{name:domainName,user:userName}});
       print("created domain " + createdDomain[0].name + " with domainadmin " + createdUser[0].name + " and password " + randomPassword);
source/referenz/hsadmin/createdomainandadmin.js
New file
@@ -0,0 +1,22 @@
#!/usr/local/bin/hsscript -f
createDomainAndDomainAdmin(arguments);
function pwGen() {
       var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#%&+!?=";
       var string_length = 8;
       var randomstring = '';
       for (var i=0; i<string_length; i++) {
                  var rnum = Math.floor(Math.random() * chars.length);
                  randomstring += chars.substring(rnum,rnum+1);
              }
       return randomstring;
}
function createDomainAndDomainAdmin(args) {
       var domainName = args[0];
       var userName = 'xyz00-' + args[0].replace("-","_");
       var randomPassword = pwGen();
       var createdUser = user.add({set:{name:userName,password:randomPassword,shell:'/bin/bash'}});
       var createdDomain = domain.add({set:{name:domainName,user:userName}});
       print("created domain " + createdDomain[0].name + " with domainadmin " + createdUser[0].name + " and password " + randomPassword);
source/referenz/hsadmin/createuseranddb.js
New file
@@ -0,0 +1,22 @@
#!/usr/local/bin/hsscript -f
createMySQLUserAndDB(arguments);
function pwGen() {
   var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_#%&+!?=";
   var string_length = 8;
   var randomstring = '';
   for (var i=0; i<string_length; i++) {
       var rnum = Math.floor(Math.random() * chars.length);
       randomstring += chars.substring(rnum,rnum+1);
   }
   return randomstring;
}
function createMySQLUserAndDB(args) {
   var userName = 'xyz00_' + args[0];
   var dbName = userName;
   var randomPassword = pwGen();
   var createdUser = mysqluser.add({set:{name:userName,password:randomPassword}});
   var createdDatabase = mysqldb.add({set:{name:userName,owner:userName}});
   print("created user and database " + createdDatabase[0].name + " with password " + randomPassword);
source/referenz/hsadmin/skript.rst
@@ -1,8 +1,8 @@
.. _kap-hsscript-skript:
=================================
Befehlsdatei an HSAdmin übergeben
=================================
===========================
HSAdmin über Skript steuern
===========================
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.
@@ -65,4 +65,59 @@
   Eine Datenbank kann nur erzeugt werden, wenn der Datenbank-Nutzer bereits angelegt ist.
   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 JS-Skript anzulegen.
Im Folgenden zeigen wir zwei Skripts.
Mit dem ersten Skript erstellen wir eine Domain und weisen ihr einen eigenen Domain-Admin zu, dessen Name aus dem Namen der Domain abgeleitet wird.
Mit dem zweiten Skript erzeugen wir eine Datenbank und einen Datenbank-Nutzer, sodass wir unter der gewünschten Domain zum Beispiel eine PHP-Anwendung wie Wordpress einrichten können.
Skript zur Erzeugung von Domain und Domain-Admin
================================================
Ein Skript, um eine Domain mit einem gesonderten Domain-Admin anzulegen, könnte so aussehen:
.. literalinclude:: createdomainandadmin.js
   :linenos:
Die Funktion ``pwGen()`` erzeugt ein achtstelliges Passwort aus einer Reihe von vorgegebenen Zeichen.
Empfehlenswert sind längere Passworte.
Die Funktion ``createDomainAndDomainAdmin(args)`` erzeugt die Domain und den Domain-Admin.
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.
Das Skript wird folgendermaßen aufgerufen:
.. 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=
Wenn Sie alle Domains mit einem einzigen Domain-Admin verwalten, können Sie den Benutzernamen des Domain-Admin hart kodieren.
Zeile 18 lautet dann:
.. literalinclude:: createdomain.js
   :lines: 18
Skript zur Anlage einer Datenbank und eines Datenbank-Nutzers
=============================================================
Das Skript zur Anlage einer Datenbank und eines Datenbank-Nutzers sieht ähnlich aus.
.. literalinclude:: createuseranddb.js
   :linenos:
Die Funktion ``createMySQLUserAndDB(args)`` erzeugt den Datenbank-Nutzer und die Datenbank.
Da sich Datenbank und Datenbank-Nutzer nicht in die Quere kommen, haben sie der Einfachheit halber den gleichen Namen.
Beim Aufruf des Skripts muss eine Zeichenkette übergeben werden, die Bestandteil der Namen von Datenbank und Datenbank-Nutzer wird.
.. code-block:: console
   xyz00@h50:~$ ./createuseranddb.js my_domain_wordpress
   created user and database xyz00_my_domain_wordpress with password 4fo=s3xY
.. attention::
   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.