Der folgende Artikel beschreibt, wie Sie die Lizenzdatei einer DRACOON Server-Umgebung tauschen. Zusätzlich wird beschrieben, was zu tun ist, um die Anzahl an Benutzern einer DRACOON Server-Umgebung anzupassen.
Bitte beachten Sie folgende Reihenfolge, wenn Sie die Anzahl an Benutzerlizenzen verändern wollen:
Beim Erweitern von den einem Mandanten zugewiesenen Benutzerlizenzen muss zuerst die DRACOON Server-Lizenzdatei getauscht werden. Erst im Anschluss können die einem DRACOON Customer zugewiesenen Benutzerlizenzen angepasst werden.
Bei der Reduktion der einem Mandanten zugewiesenen Benutzerlizenzen müssen zuerst die Benutzerlizenzen innerhalb des Mandanten (maxUsers der Customer) so angepasst werden, dass die erlaubten Maximalwerte der Lizenzdatei nicht überschritten werden. Erst im Anschluss darf die neue DRACOON Server-Lizenzdatei eingespielt werden.
Schritte in diesem Artikel
1Lizenzdatei tauschen
Die Lizenzdatei muss auf all den Servern eingespielt werden, auf denen der DRACOON Core Service betrieben wird. Dabei wird die gleiche Lizenzdatei auf allen Servern verwendet.
Legen Sie die neue Lizenzdatei dracoon.lic auf der DARCOON Core Service VM z.B. im Verzeichnis /tmp ab. Die Datei liegt damit im Pfad /tmp/dracoon.lic auf dem jeweiligen Server. Die Übertragung der Datei können Sie z.B. über WinSCP (Windows) bzw. SCP (Linux/Mac) vornehmen. Achten Sie bitte darauf, dass die Übertragung des Inhaltes per Copy + Paste ggf. fehleranfällig ist, da hier Zeichen verändert werden könnten und somit der signierte Inhalt der Datei verändert und damit ungültig werden könnte. Es ist hier nach Möglichkeit immer ein Übertragungsweg zu wählen, der die Datei unverändert auf den Server legt.
Inhalt der DRACOON Server-Lizenzdatei anzeigen
Um sich den Inhalt der Lizenzdatei anzeigen zu lassen, wird das Paket jq benötigt – es muss also zuerst installiert werden:
yum install -y jq
Anschließend kann nun mit folgendem Befehl der Inhalt der Lizenzdatei ausgegeben werden:
cat /tmp/dracoon.lic | cut -d"." -f1,2 | sed 's/\./\n/g' | base64 --decode | jq
Die Ausgabe des Befehlt sieht in etwa so aus:
[root@demo01 ~]# cat /tmp/dracoon.lic | cut -d"." -f1,2 | sed 's/\./\n/g' | base64 --decode | jq
base64: invalid input
{
"typ": "JWT",
"alg": "RS256"
}
{
"aud": "DRACOON",
"tenants": [
{
"bookedCustomers": -1,
"bookedStorage": -1,
"validFrom": 1657152000,
"domainNames": [
"demo.server.dracoon.tld",
],
"bookedUsers": 10,
"validTo": 1751328000
}
],
"isUnlimited": false,
"contactEmail": "contact@email-domain.tld",
"iss": "DRACOON",
"salesEmail": "contact@email-domain.tld",
"iat": 1657192569
}
Die Ausgabe enthält zu Beginn einer Fehlermeldung ("base64: invalid input"), diese kann jedoch ignoriert werden.
Die wesentlichen Informationen sind hier folgende Werte:
Wert | Beschreibung |
---|---|
validFrom | Beginn der Gültigkeit der Lizenzdatei. Vor diesem Zeitpunkt kann die Lizenz nicht verwendet werden. |
validTo | Ende der Gültigkeit der Lizenzdatei. Nach diesem Datum wird die Lizenz als ungültig gekannzeichnet. |
domainNames | Liste der für den jeweiligen Mandanten erlaubten Domainnamen (FQDN) |
bookedUsers | Anzahl der in diesem Mandanten erlaubten Benutzer. Es geht hierbei um die maximal verfügbaren Benutzer (Quota), nicht um die tatsächlich angelegten Benutzer. |
Die Zeit wird in der Lizenzdatei als Epoch-Zeitstempel (die Anzahl an Sekunden seit dem 01.01.1970 in der UTC-Zeitzone) angegeben. Das Umwandeln von einem Epoch-Zeitstempel in ein lesbares Format ist unter Linux sehr einfach:
date -d @<TIMESTAMP>
Die Ausgabe sieht dann in etwa so aus:
[root@demo01 ~]# date -d @1657192569
Thu Jul 7 11:16:09 UTC 2022
[root@demo01 ~]#
Bestehende Lizenzdatei sichern
Zur Sicherheit lohnt es sich, vor dem Einspielen der neuen Lizenzdatei von der bisherigen Lizenzdatei (/etc/dracoon/dracoon.lic) ein Backup (/etc/dracoon/dracoon.lic.bkp) zu erstellen:
cp /etc/dracoon/dracoon.lic /etc/dracoon/dracoon.lic.bkp
Neue Lizenzdatei einspielen
Das Einspielen der Lizenzdatei erfolgt durch Kopieren der neuen Lizenzdatei von /tmp/dracoon.lic an die Zielstelle /etc/dracoon/dracoon.lic. Der DRACOON Core Service erkennt diese Änderung und liest die neue Lizenzdatei automatisch ein.
cp /tmp/dracoon.lic /etc/dracoon/dracoon.lic
touch /etc/dracoon/dracoon.lic
Das System fragt Sie nach dem Ausführen des Befehls, ob die existierende Datei /etc/dracoon/dracoon.lic überschrieben werden soll. Bitte bestätigen Sie dies durch die Eingabe von "y" und dem anschließenden Drücken der Eingabetaste.
Um sicherzustellen, dass die DRACOON Lizenzdatei nur vom DRACOON Core Service gelesen werden kann, sollte die Berechtigung auf die Datei entsprechend vergeben werden:
chown root:dc-core-svc /etc/dracoon/dracoon.lic
chmod 640 /etc/dracoon/dracoon.lic
2Vorbereitungen für das Anpassen der Benutzerlizenzen
Für den nächsten Schritt benötigen Sie ein zum Mandanten passendes Service Token für die /provisioning API von DRACOON. Sofern Sie bisher noch nicht über diese Informationen verfügen, müssen diese zuerst aus der Datenbank ausgelesen werden. Dazu wiederum benötigen Sie die folgenden Informationen über Ihre DRACOON-Umgebung, welche Sie an den entsprechenden Stellen in die bereitgestellten Befehle einsetzen müssen:
Parameter | Beschreibung |
---|---|
<default_db> | Name der Mandanten-Datenbank. Entspricht Wert database.name aus der Core-Konfigurationsdatei /etc/dracoon/core-service.properties |
<db_user> | Name eines Datenbanknutzers der Leseberechtigung auf der core_service-Datenbank besitzt. Entspricht Wert database.username aus der Core-Konfigurationsdatei /etc/dracoon/core-service.properties |
<db_pass> | Passwort des verwendeten Datenbanknutzers. Entspricht Wert database.password aus der Core-Konfigurationsdatei /etc/dracoon/core-service.properties |
X-Sds-Service-Token heraussuchen
Der X-Sds-Service-Token wird benötigt, um die Customer eines Mandanten zu verwalten. Es gibt pro Mandant ein oder mehrere Token in der Datenbank. In der Regel wird hier jedoch beim Hinzufügen eines Mandanten nur ein Token erzeugt. Dieses können Sie wie folgt auslesen:
mysql -u<db_user> -p<db_pass> -e "SELECT token, service_name FROM <default_db>.authorized_services;"
Das Ergebnis zeigt ihnen jeweils einen Token in der Spalte "token" sowie einen Freitext in der Spalte "service_name", der Ihnen im Normalfall die Zuordnung des jeweiligen Token zu den Mandanten ermöglicht, sofern Sie mehrere Mandanten verwenden. Wenn Sie nur einen Mandanten haben, wird es in der Regel auch nur einen Token geben.
3Prüfen der Lizenzgültigkeit
Ob die Lizenz korrekt eingespielt wurde, lässt sich sehr einfach über das DRACOON API prüfen. Dieser Schritt sorgt auch dafür, dass der DRACOON Core Service die neuen Lizenzinformationen nochmal sauber einliest. Deshalb sollte dieser Schritt vor Anpassung der Benutzerlizenzen durchgeführt werden. Rufen Sie dazu im Browser folgende URL auf: https://<Ihre_DRACOON_domain>/api/v4/public/system/info/license
Bei Bedarf lässt sich auch die Gültigkeitsdauer anzeigen. Dies ist jedoch nur über einen geschützten API-Endpunkt des /provisioning API möglich. Dies geht zum einen über die Kommandozeile:
curl -X GET "https://<Ihre_DRACOON_domain>/api/v4/provisioning/check_license" -H "accept: application/json" -H "X-Sds-Service-Token: xxxx"
Das "X-Sds-Service-Token: xxxx" bekommen Sie über den zuvor genannten Schritt in der Anleitung "Vorbereitungen für das Anpassen der Benutzerlizenzen".
Alternativ ist dies auch über den Swagger Proxy möglich, der die Dokumentation des DRACOON API darstellt. Rufen Sie dazu im Browser die folgende URL auf: https://<Ihre_DRACOON_domain>/api/swagger-ui/index.html?configUrl=/api/spec_v4/swagger-config#/provisioning/checkLicense
Klicken Sie auf die Schaltfläche "Try it out", geben in das angezeigte Feld "X-Sds-Service-Token" das Service Token des Mandanten ein, und klicken Sie auf die blaue "Execute"-Schaltfläche. Die Ausgabe gibt Ihnen dann den Status des Lizenz zurück:
{
"validFrom": "2022-09-22T13:04:01.150Z",
"validTo": "2022-09-22T13:04:01.150Z",
"state": "valid"
}
4Anzahl der Benutzerlizenzen anpassen
Sofern Sie die neue Lizenzdatei nur eingespielt haben, um die Laufzeit der bisherigen Lizenz zu verlängern, können Sie dieses Kapitel ignorieren.
Wir beschreiben in diesem Kapitel, wie die Anzahl an Benutzern in einem DRACOON Tenant bzw. Customer angepasst wird. Dies ist z.B. bei einer Lizenzerweiterung oder -reduktion notwendig.
Der DRACOON Core Service übernimmt die Anzahl an erlaubten Benutzern nicht automatisch aus der Lizenzdatei. Dies ist nicht möglich, da die Lizenzdatei auf Ebene der DRACOON Tenants (Mandanten) gilt, die Benutzer innerhalb eines Tenants jedoch auf mehrere Customer aufgeteilt werden können. Die Anzahl an Benutzerlizenzen (bookedUsers) ist also nur eine Obergrenze auf der Tenant-Ebene.
Das DRACOON Server http REST API ist auf jeder Installation unter der Adresse https://<ihre.dracoon.domain.tld>/api/ verfügbar.
Der API-Bereich /provisioning erlaubt die Verwaltung der Customer innerhalb des jeweiligen Mandanten.
Angepasst wird ein Customer über den API-Endpunkt PUT /api/v4/provisioning/customers/{customer_id}
Diesem API wird ein JSON array übergeben, das die neuen Werte enthält. Um die Anzahl der maximalen Benutzer in einem Customer anzupassen, wird beispielsweise das folgende Array übergeben:
{
"userMax": <USER_ANZAHL>
}
Die Benutzung des REST API kann entweder über ein Linux-Tool wie z.B. curl oder über den Swagger Proxy vorgenommen werden, der unter https://<ihre.dracoon.domain.tld>/api/ erreichbar ist.
Zur Verwendung der /provisioning API-Endpunkte wird das X-Sds-Service-Token benötigt.
Kommentare
0 Kommentare
Zu diesem Beitrag können keine Kommentare hinterlassen werden.