#!/usr/bin/perl -w # Данный пример добавляет новый домен на аккаунт ftp0 с разрешенным # исполнением CGI, обработчиком логов webalizer и web-сервером apache use strict; use dedikit; # логинимся my $DB_ID = YOUR_ID; my $DB_LOGIN = 'admin'; my $DB_PASSWORD = YOUR_PASSWORD; my $NEW_HOSTNAME = "mynewhost.com"; # ип должен находиться в ip_pool my $IPADDR = '1.1.1.1'; dedikit::login(id => $DB_ID, login => $DB_LOGIN, password => $DB_PASSWORD); if($dedikit::ERROR) { print "Failed to login ($dedikit::ERROR)\n"; exit 1; } my @result; # получаем нужные ID # account_id @result = dedikit::select(table => 'accounts', columns => [ 'id' ], where => [ { op => 'EQ', name => 'login', value => 'ftp0' } ] ); if($dedikit::ERROR) { print "Error occured ($dedikit::ERROR)\n"; exit 1; } if(scalar @result == 0) { # нет аккаунта ftp0 print "No account ftp0\n"; exit 1; } my $account_id = $result[0]->{id}; # добавляем новый хост dedikit::insert(table => 'hosts', columns => { name => $NEW_HOSTNAME, account_id => $account_id, http_log_processor => undef, http_server => 'apache', cgi => 1, } ); if($dedikit::ERROR) { print "Error occured ($dedikit::ERROR)\n"; exit 1; } # получаем host_id от добавленного хоста @result = dedikit::select(table => 'hosts', columns => [ 'id' ], where => [ { op => 'EQ', name => 'name', value => $NEW_HOSTNAME } ]); my $host_id = $result[0]->{id}; # добавляем днс зону my ($dnszone_id, $dnszone_prefix) = dedikit::get_add_dnszone(hostname => $NEW_HOSTNAME); if($dedikit::ERROR) { print "Error occured ($dedikit::ERROR)\n"; exit 1; } # добавляем алиасы сайта # алиас HOSTNAME dedikit::insert(table => 'host_aliases', columns => { host_id => $host_id, dnszone_id => $dnszone_id, ipaddr => $IPADDR, } ); if($dedikit::ERROR) { print "Error occured ($dedikit::ERROR)\n"; exit 1; } # www.HOSTNAME dedikit::insert(table => 'host_aliases', columns => { host_id => $host_id, dnszone_id => $dnszone_id, ipaddr => $IPADDR, dnszone_prefix => 'www', } ); if($dedikit::ERROR) { print "Error occured ($dedikit::ERROR)\n"; exit 1; }