ISPConfig-API - Schnittstelle zur Automatisierung
ISPConfig bietet eine API, über die Sie diverse Aufgaben automatisieren können, so z.B. das Anlegen von Kunden, Websites, Datenbanken, FTP- und E-Mail-Konten. So haben Sie die Möglichkeit, ISPConfig in Ihre bestehende Infrastruktur einzupassen und wiederkehrende, zeitfressende Aufgaben automatisiert abzuarbeiten. Als Beispiel: Sie müssen viele Websites, Datenbanken, FTP-Accounts, etc. mit den immer gleichen Einstellungen anlegen, weil Sie sich als Agentur auf ein bestimmtes CMS oder Shopsystem spezialisiert haben. Das können Sie über die API machen und auf Wunsch gleich die Zugangsdaten an den Kunden verschicken.
Diese API ist für Kunden eines Managed vServers, Managed Servers oder ScaleServers verfügbar; wenn Sie ein Hostingpaket haben, steht Ihnen die Schnittstelle leider nicht zur Verfügung.
Um die API nutzen zu können, müssen Sie in Ihrem ISPConfig unter "System" > "Entfernte Benutzer" einen Benutzer anlegen, der auf die API zugreifen darf (bitte achten Sie darauf, ein starkes Passwort für diesen Benutzer zu vergeben!). Für diesen Benutzer schalten Sie bestimmte Funktionen frei (welche Funktion jeweils benötigt wird, ist im jeweiligen Beispiel-Skript am Ende dieser Seite als Kommentar vermerkt):
Die Benutzerdaten tragen Sie im Skript soap_config.php ein; passen Sie außerdem die IP-Adresse in den Variablen $soap_location und $soap_uri an (Sie können statt einer IP-Adresse auch einen Hostnamen setzen, z.B. den Hostnamen, über den Sie auf Ihr ISPConfig zugreifen; wenn Ihre Skripte auf demselben Server liegen, auf dem auch das ISPConfig-Interface liegt, können Sie einfach localhost eintragen):
<?php $username = 'apiuser'; $password = 'meinganzsicherespasswort'; $soap_location = 'https://192.168.0.105:8080/remote/index.php'; $soap_uri = 'https://192.168.0.105:8080/remote/'; ?>
Wenn Parameter übergeben werden (in unseren Beispiel-Skripten heißt das Array, das die Paramter enthält, immer $params), orientieren sich die Namen der Keys immer an den Spaltennamen der zugrundeliegenden Datenbanktabelle in der ISPConfig-Datenbank. Beispiel-Paramter für das Anlegen einer Website:
$params = array( 'server_id' => 1, 'ip_address' => '*', 'domain' => 'test2.int', 'type' => 'vhost', 'parent_domain_id' => 0, 'vhost_type' => 'name', 'hd_quota' => 100000, 'traffic_quota' => -1, 'cgi' => 'y', 'ssi' => 'y', 'suexec' => 'y', 'errordocs' => 1, 'is_subdomainwww' => 1, 'subdomain' => '', 'php' => 'y', 'ruby' => 'n', 'redirect_type' => '', 'redirect_path' => '', 'ssl' => 'n', 'ssl_state' => '', 'ssl_locality' => '', 'ssl_organisation' => '', 'ssl_organisation_unit' => '', 'ssl_country' => '', 'ssl_domain' => '', 'ssl_request' => '', 'ssl_key' => '', 'ssl_cert' => '', 'ssl_bundle' => '', 'ssl_action' => '', 'stats_password' => '', 'stats_type' => 'webalizer', 'allow_override' => 'All', 'apache_directives' => '', 'php_open_basedir' => '/', 'pm_max_requests' => 0, 'pm_process_idle_timeout' => 10, 'custom_php_ini' => '', 'backup_interval' => '', 'backup_copies' => 1, 'active' => 'y', 'traffic_quota_lock' => 'n' );
Wie Sie sehen, lauten die Array-Keys (server_id, ip_address, domain, type, etc.) exakt wie die Spaltennamen der web_domain-Tabelle in der ISPConfig-Datenbank. Mit der Zeit, da wir ISPConfig immer weiterentwickeln, können neue Spaltennamen hinzukommen. Sie können das Parameter-Array entsprechend erweitern, wenn Sie den Spaltennamen kennen; dies ist aber optional - wenn Parameter fehlen, werden die Default-Werte aus der MySQL-Tabellendefinition genommen.
In der folgenden Tabelle finden Sie in PHP geschriebene Beispielskripte für alle möglichen Anwendungsfälle: