#!/usr/bin/perl
BEGIN {
my $x = $0; $x =~ s/\/[^\/]+$//;
if ($x eq $0 || $x eq '') { $x = `pwd`;chomp $x; };
require "$x/config.pl";
};
sub usage {
print "usage: add_basic_zone host ip nsip ...\n"; exit 1;
}
my $host = shift @ARGV;
&usage if (!defined($host));
my $ip = shift @ARGV;
&usage if (!defined($ip));
my (@ns) = (@ARGV);
&usage if (scalar(@ns) < 1);
my $ldap = &get_ldap_conn;
$host =~ s/^\.//; $host =~ s/\.$//;
my @nsadd = ();
foreach my $i (@ns) {
$i =~ s/^\.//; $i =~ s/\.$//;
push(@nsadd, $i);
}
dc_add_prefix($ldap, $host);
if ($ip =~ /[^\d\.]/) {
# not a valid host... make it a cNAME
set_record($ldap, $host, [
dc => dc_domain($host),
objectClass => [ qw(dnsDomain dcObject) ],
cNAMERecord => "$ip.",
mXRecord => "10 mail.$host.",
nsRecord => "ns.$host.",
], { aRecord => [],
mXRecord => "10 mail.$host.",
nsRecord => "ns.$host.",
cNAMERecord => "$ip.",
description => [],
});
} else {
set_record($ldap, $host, [
dc => dc_domain($host),
objectClass => [ qw(dnsDomain dcObject) ],
aRecord => $ip,
mXRecord => "10 mail.$host.",
nsRecord => "ns.$host.",
], { aRecord => $ip,
mXRecord => "10 mail.$host.",
nsRecord => "ns.$host.",
cNAMERecord => [],
description => [],
});
}
foreach $i (qw(www ftp mail)) {
set_record($ldap, "$i.$host", [
dc => $i,
objectClass => [ qw(dnsDomain dcObject) ],
mXRecord => "10 mail.$host.",
nsRecord => "ns.$host.",
cNAMERecord => "$host.",
], { aRecord => [],
mXRecord => "10 mail.$host.",
nsRecord => "ns.$host.",
cNAMERecord => "$host.",
description => [],
});
}
$ldap->add(&dn_domain("ns.$host"),
attr => [
dc => 'ns',
objectClass => [ qw(dnsDomain dcObject) ],
mXRecord => "10 mail.$host.",
nsRecord => "ns.$host.",
aRecord => \@nsadd,
]);
set_record($ldap, "ns.$host", [
dc => 'ns',
objectClass => [ qw(dnsDomain dcObject) ],
mXRecord => "10 mail.$host.",
nsRecord => "ns.$host.",
aRecord => \@nsadd,
], { aRecord => \@nsadd,
mXRecord => "10 mail.$host.",
nsRecord => "ns.$host.",
cNAMERecord => [],
description => [],
});
syntax highlighted by Code2HTML, v. 0.9.1