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 |
---|---|---|---|
|
2.7.0 |
Number: |
Versionsnummer des Dateiformats. Muss |
|
2.7.0 |
JSON-Objekt |
Einstellungen für den admin-Zugang:
|
|
2.7.0 |
JSON-Objekt |
Schlüssel-/Wert-Paare welche in die Tabelle |
|
2.7.0 |
String |
Lizenzcode (für die automatische Lizenzaktivierung) |
|
2.7.0 |
JSON-Objekt |
Zusätzliche AutoDeploy-Daten abrufen. Diese werden mit den Inhalten von
|
|
2.7.2 |
JSON-Objekt |
Dienste mit LiveConfig vorkonfigurieren:
|
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).