AutoDeploy

Die AutoDeploy-Funktion vereinfachte die automatisierte Installation und Konfiguration von LiveConfig. Beim ersten Start prüft LiveConfig ob die Datei /etc/liveconfig/autodeploy.json existiert. Diese Datei kann ein JSON-Objekt enthalten, folgende Konfigurationsoptionen werden unterstützt:

Schlüssel

Version

Wert

Beschreibung

version

2.7.0

Number: 1

Versionsnummer des Dateiformats. Muss 1 sein.

admin

2.7.0

JSON-Objekt

Einstellungen für den admin-Zugang:

  • password (String): PBKDF2-Passwort-Hash (siehe Beispiel-Code unten)

  • change-password (Boolean): erzwinge Passwortänderung durch den Benutzer bei der ersten Anmeldung

lcdefault

2.7.0

JSON-Objekt

Schlüssel-/Wert-Paare welche in die Tabelle LCDEFAULTS geschrieben werden sollen (siehe LiveConfig Standard-Werte). WICHTIG: die Werte müssen alle als Zeichenkette (String, mit Anführungszeichen) angegeben werden!

licensekey

2.7.0

String

Lizenzcode (für die automatische Lizenzaktivierung)

include

2.7.0

JSON-Objekt

Zusätzliche AutoDeploy-Daten abrufen. Diese werden mit den Inhalten von autodeploy.json zusammengeführt, vorhandene Einstellungen werden durch die abgerufenen Werte überschrieben.

  • url (String): URL von der AutoDeploy-Daten abgerufen werden sollen. Der Content-Type muss dabei application/json sein.

services

2.7.2

JSON-Objekt

Dienste mit LiveConfig vorkonfigurieren:

  • web (JSON object): Webserver vorkonfigurieren. Beispiel:

    {
        "web": {
            "apache": {
                "ips": "198.51.100.10"
            },
            "nginx": {
                "ips": [ "198.51.100.11", "198.51.100.12" ]
            }
        }
    }
    

    Optional können Sie ips auf * setzen um diesen Dienst auf allen erkannten IPs des Servers zu konfigurieren.

Sicherheit

Da diese Datei sensible Informationen enthalten könnte, sollte sie dem Benutzer root:root gehören und auch nur von diesem lesbar sein (Mode 0600).

Example

{
    "version": 1,
    "admin": {
        "password": "{PBKDF2}32e6$ldzp8GDnr9s=$lfmOwnQ52MQ4bGJZgo6HuQ==",
        "change-password": true
    },
    "lcdefaults": {
        "login.help.url": "https://example.org/cms/help/login",
        "mail.aliases.limit": "20"
    },
    "licensekey": "XXXXX-XXXXX-XXXXX",
    "services": {
        "web": {
            "apache": {
                "ips":  "*"
            }
        }
    }
}

Creating PBKDF2 password hashes

Der folgende PHP-Code zeigt die Erstellung eines PBKDF2-Passwort-Hashes für LiveConfig:

<?php
# Example code for creating PBKDF2 password hashes for LiveConfig

$password = "LiVeCoNfIg";

$iterations = rand(10000,65535);
$salt = openssl_random_pseudo_bytes(8);
$hash = hash_pbkdf2("sha1", $password, $salt, $iterations, 16, true);

$data = '{PBKDF2}' . dechex($iterations) . '$' . base64_encode($salt) . '$' . base64_encode($hash);

print "Hash: $data\n";

?>

AutoDeploy-Daten via HTTP(S) laden

Mit der include-Option können AutoDeploy-Einstellungen von einer URL geladen werden. Die minimalen Einstellungen in der autodeploy.json sehen wie folgt aus:

{
  "version": 1,
  "include": {
    "url": "https://intra.example.org/liveconfig/autodeploy.php"
  }
}

Die aufgerufene URL muss mit einem einzelnen JSON-Objekt mit dem Content-Type application/json antworten. Die empfangenen Daten werden mit der autodeploy.json zusammengeführt.

Der jeweilige LiveConfig-Server kann anhand dessen IP-Adresse identifiziert werden (z.B. in PHP: $_SERVER['REMOTE_ADDR']) und so individuell konfiguriert werden (insbesondere Lizenzcode und Startpasswort).


Zuletzt aktualisiert am 25.08.2020.
weiter: Datenbank
zurück: CentOS/RHEL