| uwe   Junior Member
 
  
 Posts: 68
 Joined: Feb 2008
 Reputation: 0
 | 
			| [HowTo] powerdns and isp-control 
 
				Hello,  
I've been trying to get ispcp and powerdns to work togather, here is what i do to get it, its not really generic and im using it in testing environment.
 
Install pdns-server and pdns-backend-mysql (im using debian)
 
create tables domains, records and supermasters in ispcp database following this doc http://doc.powerdns.com/generic-mypgsql-backends.html 
configure pdns to use mysql-backend and set the username and password and database name ..etc, i also used bind backend to serve old domains i didnt have imported into pdns database, this can be also achieved by using bind2mysql script but i chose not to since im using domain ID from ispcp and not relaying on pdns to set the domain ID.
 
then i modify ispcp-dmn-mngr (/var/www/ispcp/engine)
 
in sub dmn_add_named_cfg_data 
around the store_file function and before the return add:
 PHP Code:
 doSQL("INSERT INTO domains values (@$dmn_data[0],'$dmn_name',NULL,NULL,'MASTER',NULL,NULL)"); 
in sub dmn_del_named_cfg_data , around where we save a working copy
 PHP Code:
 doSQL("DELETE FROM domains where id = @$dmn_data[0]"); 
in sub dmn_add_named_db_data, around where we store generated data,(store_file) before the returns
 PHP Code:
     doSQL("INSERT INTO records values (NULL,@$dmn_data[0],'$dmn_name','SOA','ns1.$dmn_name. postmaster.$dmn_name. $time2 4800 3600 432000 21600',21600,0,1206429418)");doSQL("INSERT INTO records values ('NULL','@$dmn_data[0]','', 'NS','ns1.$dmn_name',21600,0,1206426697 )") ;
 doSQL("INSERT INTO records values ('NULL','@$dmn_data[0]','', 'NS','ns2.$dmn_name',21600,0,1206426697 )") ;
 doSQL("INSERT INTO records values ('NULL','@$dmn_data[0]','', 'MX','mail.$dmn_name',21600,10,1206426697 )") ;
 doSQL("INSERT INTO records values ('NULL','@$dmn_data[0]','". $dmn_name . "', 'A','" . $dmn_ip . "',21600,0,1206426697 )") ;
 doSQL("INSERT INTO records values ('NULL','@$dmn_data[0]','www', 'A','" . $dmn_ip . "',21600,0,1206426697 )") ;
 doSQL("INSERT INTO records values ('NULL','@$dmn_data[0]','$dmn_name.', 'TXT','\"v=spf1 a mx ip4:$dmn_ip ~all\"',21600,0,1206426697 )") ;
 doSQL("INSERT INTO records values ('NULL',@$dmn_data[0],'localhost', 'A','127.0.0.1',21600,0,1206426697 )") ;
 doSQL("INSERT INTO records values ('NULL',@$dmn_data[0],'mail', 'A','$base_svr_ip',21600,0,1206426697 )") ;
 doSQL("INSERT INTO records values ('NULL',@$dmn_data[0],'ns1', 'A','$base_svr_ip',21600,0,1206426697 )") ;
 doSQL("INSERT INTO records values ('NULL',@$dmn_data[0],'ns2', 'A','$sec_dns_ip',21600,0,1206426697 )") ;
 doSQL("INSERT INTO records values ('NULL',@$dmn_data[0],'imap', 'CNAME','mail',21600,0,1206426697 )") ;
 doSQL("INSERT INTO records values ('NULL',@$dmn_data[0],'pop', 'CNAME','mail',21600,0,1206426697 )") ;
 doSQL("INSERT INTO records values ('NULL',@$dmn_data[0],'pop3', 'CNAME','mail',21600,0,1206426697 )") ;
 doSQL("INSERT INTO records values ('NULL',@$dmn_data[0],'smtp', 'CNAME','mail',21600,0,1206426697 )") ;
 doSQL("INSERT INTO records values ('NULL',@$dmn_data[0],'ftp', 'CNAME','www',21600,0,1206426697 )") ;
 
and in dmn_del_named_db_data, before the returns, near del_file do:
 PHP Code:
 doSQL("DELETE FROM records where domain_id = @$dmn_data[0]"); 
and now we modify dmn-sub-mngr, here we modify two functions:
 
sub sub_add_named_cfg_data, near the store_file call, and before the return:
 PHP Code:
 doSQL("INSERT INTO records values ('NULL','@$sub_data[5]','$sub_pref', 'A','$dmn_ip',21600,0,1206426697 )") ;doSQL("INSERT INTO records values ('NULL','@$sub_data[5]','www.$sub_pref', 'A','$dmn_ip',21600,0,1206426697 )") ;
 doSQL("INSERT INTO records values ('NULL','@$sub_data[5]','ftp.$sub_pref', 'A','$dmn_ip',21600,0,1206426697 )") ;
 doSQL("INSERT INTO records values ('NULL','@$sub_data[5]','localhost.$sub_pref', 'A','127.0.0.1',21600,0,1206426697 )") ;
 
and sub sub_del_named_cfg_data, near storing prepared data (also store_file call) and before return:
 PHP Code:
 doSQL("DELETE FROM records where domain_id='@$sub_data[5]' AND name='$sub_pref' AND type='A'") ;doSQL("DELETE FROM records where domain_id='@$sub_data[5]' AND name='www.$sub_pref' AND type='A'") ;
 doSQL("DELETE FROM records where domain_id='@$sub_data[5]' AND name='ftp.$sub_pref' AND type='A'") ;
 doSQL("DELETE FROM records where domain_id='@$sub_data[5]' AND name='localhost.$sub_pref' AND type='A'") ;
 
				
(This post was last modified: 11-25-2008 03:09 AM by BeNe.)
 |  |