Save raw zone file

jouwnaam

Verified User
Joined
Mar 17, 2005
Messages
39
I would like to add some Google Apps domains by using the API. I allready have a correct DNS zone file in $zonefile. But how do I save it using the DA API?

PHP:
$sock->query('/CMD_DNS_CONTROL',
    array(
        'action' => 'rawsave',
  	'domain' => $domain,
        //$zonefile should be added here?
    ));
);
 
I fixed it this way (mostly using PHP since I'm not a bash expert):

/usr/local/directadmin/scripts/custom/domain_create_post.sh
Code:
#!/bin/bash
/usr/local/bin/php /usr/local/directadmin/scripts/custom/googledns.php -u $username -d $domain

mv /usr/local/directadmin/googleapps/*.db /var/named

/usr/local/directadmin/scripts/custom/googledns.php
PHP:
#!/usr/local/bin/php -q
<?php
  
$arguments = getopt("u:d:");

$user = $arguments['u'];
$domain = $arguments['d'];

if($user == 'google')
{
$zonefile = '
$TTL 14400
@	IN	SOA     ns01.server.nl.	   hostmaster.'.$domain.'. (
                                                '.date('Ymd').'01
                                                14400
                                                3600
                                                1209600
                                                86400 )

'.$domain.'.     14400   IN     NS	ns01.server.nl.
'.$domain.'.     14400   IN     NS	ns02.server.nl.

'.$domain.'.     14400   IN     A	123.456.789.001
localhost	14400   IN	A	127.0.0.1

www             14400   IN	CNAME   ghs.google.com
start           14400   IN	CNAME   ghs.google.com
calendar        14400   IN	CNAME   ghs.google.com
home            14400   IN	CNAME   ghs.google.com
docs            14400   IN	CNAME   ghs.google.com
mail            14400   IN	CNAME   ghs.google.com

'.$domain.'.     14400   IN     MX	10 ASPMX.L.GOOGLE.COM
'.$domain.'.     14400   IN     MX	15 ALT1.ASPMX.L.GOOGLE.COM
'.$domain.'.     14400   IN     MX	15 ALT2.ASPMX.L.GOOGLE.COM
'.$domain.'.     14400   IN     MX	20 ASPMX2.L.GOOGLE.COM
'.$domain.'.     14400   IN     MX	20 ASPMX3.L.GOOGLE.COM
'.$domain.'.     14400   IN     MX	20 ASPMX4.L.GOOGLE.COM
'.$domain.'.     14400   IN     MX	20 ASPMX5.L.GOOGLE.COM

'.$domain.'.     14400   IN     TXT     "v=spf1 a mx ip4:123.456.789.001 ~all"
';

file_put_contents('/usr/local/directadmin/googleapps/'.$domain.'.db', $zonefile);
}
?>

Maybe the zonefile is not correct yet (still have to check), but that is easy to fix.

Every new domain belonging to the user 'google' will now be prepared for Google Apps. The required verification CNAME can easilly be added through the DA API.
 
Last edited:
Back
Top