ISPConfig-API - Schnittstelle zur Automatisierung

Unser Control Panel ISPConfig bietet eine API, über die Sie diverse Aufgaben automatisieren können, so z.B. das Anlegen von Kunden, Websites, Datenbanken, FTP- und Email-Konten. So haben Sie die Möglichkeit, ISPConfig in Ihre bestehende Infrastruktur einzupassen und immer wiederkehrende, zeitfressende Aufgaben automatisiert abzuarbeiten. Wenn Sie beispielsweise viele Websites mit den immer gleichen Einstellungen anlegen müssen (z.B., weil Sie sich als Agentur auf ein bestimmtes CMS oder Shopsystem spezialisiert haben) plus Datenbanken plus FTP-Accounts etc., können Sie das nun über die API machen und auf Wunsch auch gleich die Zugangsdaten an den Kunden verschicken.

Diese API ist für Kunden eines Agenturpaketes, 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):

Anlegen einer API-Benutzers unter ISPConfig

Die Benutzerdaten tragen Sie im Skript soap_config.php ein; passen Sie außerdem die IP-Adresse in den Variablen $soap_location und $sopa_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:

DateinameGröße
 client_add.php2764 Bytes
 client_change_password.php901 Bytes
 client_delete.php901 Bytes
 client_delete_everything.php935 Bytes
 client_get.php870 Bytes
 client_get_by_username.php877 Bytes
 client_get_id.php867 Bytes
 client_get_sites_by_user.php911 Bytes
 client_templates_get_all.php827 Bytes
 client_update.php1305 Bytes
 dns_a_add.php1083 Bytes
 dns_a_delete.php880 Bytes
 dns_a_get.php840 Bytes
 dns_a_update.php1078 Bytes
 dns_aaaa_add.php1100 Bytes
 dns_aaaa_delete.php886 Bytes
 dns_aaaa_get.php846 Bytes
 dns_aaaa_update.php1087 Bytes
 dns_alias_add.php1098 Bytes
 dns_alias_delete.php888 Bytes
 dns_alias_get.php848 Bytes
 dns_alias_update.php1090 Bytes
 dns_cname_add.php1098 Bytes
 dns_cname_delete.php888 Bytes
 dns_cname_get.php848 Bytes
 dns_cname_update.php1090 Bytes
 dns_hinfo_add.php1105 Bytes
 dns_hinfo_delete.php888 Bytes
 dns_hinfo_get.php848 Bytes
 dns_hinfo_update.php1090 Bytes
 dns_mx_add.php1090 Bytes
 dns_mx_delete.php882 Bytes
 dns_mx_get.php842 Bytes
 dns_mx_update.php1081 Bytes
 dns_ns_add.php1086 Bytes
 dns_ns_delete.php882 Bytes
 dns_ns_get.php842 Bytes
 dns_ns_update.php1081 Bytes
 dns_ptr_add.php1102 Bytes
 dns_ptr_delete.php884 Bytes
 dns_ptr_get.php844 Bytes
 dns_ptr_update.php1084 Bytes
 dns_rp_add.php1130 Bytes
 dns_rp_delete.php883 Bytes
 dns_rp_get.php843 Bytes
 dns_rp_update.php1082 Bytes
 dns_rr_get_all_by_zone.php814 Bytes
 dns_srv_add.php1103 Bytes
 dns_srv_delete.php885 Bytes
 dns_srv_get.php845 Bytes
 dns_srv_update.php1085 Bytes
 dns_txt_add.php1107 Bytes
 dns_txt_delete.php884 Bytes
 dns_txt_get.php845 Bytes
 dns_txt_update.php1085 Bytes
 dns_zone_add.php1200 Bytes
 dns_zone_delete.php885 Bytes
 dns_zone_get.php846 Bytes
 dns_zone_get_by_user.php917 Bytes
 dns_zone_set_status.php921 Bytes
 dns_zone_update.php1087 Bytes
 get_function_list.php854 Bytes
 mail_alias_add.php1046 Bytes
 mail_alias_delete.php903 Bytes
 mail_alias_get.php878 Bytes
 mail_alias_update.php1147 Bytes
 mail_blacklist_add.php1048 Bytes
 mail_blacklist_delete.php919 Bytes
 mail_blacklist_get.php902 Bytes
 mail_blacklist_update.php1185 Bytes
 mail_catchall_add.php1053 Bytes
 mail_catchall_delete.php915 Bytes
 mail_catchall_get.php896 Bytes
 mail_catchall_update.php1174 Bytes
 mail_domain_add.php978 Bytes
 mail_domain_delete.php907 Bytes
 mail_domain_get.php884 Bytes
 mail_domain_get_by_domain.php901 Bytes
 mail_domain_set_status.php929 Bytes
 mail_domain_update.php1156 Bytes
 mail_fetchmail_add.php1188 Bytes
 mail_fetchmail_delete.php919 Bytes
 mail_fetchmail_get.php902 Bytes
 mail_fetchmail_update.php1180 Bytes
 mail_filter_add.php1053 Bytes
 mail_filter_delete.php907 Bytes
 mail_filter_get.php884 Bytes
 mail_filter_update.php1156 Bytes
 mail_forward_add.php1063 Bytes
 mail_forward_delete.php957 Bytes
 mail_forward_get.php1011 Bytes
 mail_forward_update.php1181 Bytes
 mail_policy_add.php2032 Bytes
 mail_policy_delete.php936 Bytes
 mail_policy_get.php886 Bytes
 mail_policy_update.php1164 Bytes
 mail_spamfilter_blacklist_add.php1072 Bytes
 mail_spamfilter_blacklist_delete.php971 Bytes
 mail_spamfilter_blacklist_get.php912 Bytes
 mail_spamfilter_blacklist_update.php1201 Bytes
 mail_spamfilter_user_add.php1094 Bytes
 mail_spamfilter_user_delete.php959 Bytes
 mail_spamfilter_user_get.php910 Bytes
 mail_spamfilter_user_update.php1217 Bytes
 mail_spamfilter_whitelist_add.php1072 Bytes
 mail_spamfilter_whitelist_delete.php971 Bytes
 mail_spamfilter_whitelist_get.php912 Bytes
 mail_spamfilter_whitelist_update.php1201 Bytes
 mail_transport_add.php1037 Bytes
 mail_transport_delete.php955 Bytes
 mail_transport_get.php902 Bytes
 mail_transport_update.php1186 Bytes
 mail_user_add.php1659 Bytes
 mail_user_delete.php911 Bytes
 mail_user_filter_add.php1088 Bytes
 mail_user_filter_delete.php955 Bytes
 mail_user_filter_get.php898 Bytes
 mail_user_filter_update.php1189 Bytes
 mail_user_get.php858 Bytes
 mail_user_update.php1155 Bytes
 mail_whitelist_add.php1044 Bytes
 mail_whitelist_delete.php919 Bytes
 mail_whitelist_get.php902 Bytes
 mail_whitelist_update.php1186 Bytes
 server_get.php890 Bytes
 server_get_serverid_by_ip.php905 Bytes
 sites_cron_add.php1120 Bytes
 sites_cron_delete.php928 Bytes
 sites_cron_get.php866 Bytes
 sites_cron_update.php1110 Bytes
 sites_database_add.php1240 Bytes
 sites_database_delete.php952 Bytes
 sites_database_get.php893 Bytes
 sites_database_get_all_by_user.php912 Bytes
 sites_database_update.php1163 Bytes
 sites_database_user_add.php1030 Bytes
 sites_database_user_delete.php967 Bytes
 sites_database_user_get.php908 Bytes
 sites_database_user_update.php1225 Bytes
 sites_ftp_user_add.php1270 Bytes
 sites_ftp_user_delete.php924 Bytes
 sites_ftp_user_get.php894 Bytes
 sites_ftp_user_update.php1154 Bytes
 sites_shell_user_add.php1215 Bytes
 sites_shell_user_delete.php966 Bytes
 sites_shell_user_get.php906 Bytes
 sites_shell_user_update.php1174 Bytes
 sites_web_aliasdomain_add.php1959 Bytes
 sites_web_aliasdomain_delete.php968 Bytes
 sites_web_aliasdomain_get.php912 Bytes
 sites_web_aliasdomain_update.php1198 Bytes
 sites_web_domain_add.php1953 Bytes
 sites_web_domain_delete.php950 Bytes
 sites_web_domain_get.php882 Bytes
 sites_web_domain_set_status.php935 Bytes
 sites_web_domain_update.php1276 Bytes
 sites_web_subdomain_add.php1955 Bytes
 sites_web_subdomain_delete.php959 Bytes
 sites_web_subdomain_get.php901 Bytes
 sites_web_subdomain_update.php1178 Bytes
 soap_config.php168 Bytes

 

Nach oben