diff options
Diffstat (limited to 'bootstrap/make-first-zones.pl')
-rwxr-xr-x | bootstrap/make-first-zones.pl | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/bootstrap/make-first-zones.pl b/bootstrap/make-first-zones.pl new file mode 100755 index 0000000..7d6d9f4 --- /dev/null +++ b/bootstrap/make-first-zones.pl @@ -0,0 +1,108 @@ +#!/usr/bin/perl -I /root/tgmanage +use strict; + +use Net::IP; + +BEGIN { + require "include/config.pm"; + eval { + require "include/config.local.pm"; + }; +} + +my $base = "/etc"; +$base = $ARGV[0] if $#ARGV > -1; +$base .= "/" if not $base =~ m/\/$/ and not $base eq ""; + +my $serial = strftime("%Y%m%d", localtime(time())) . "01"; + +my $zonefile; +$zonefile = $base . "bind/" . $nms::config::tgname . ".gathering.org.zone"; + +if ( not -f $zonefile ) +{ + print $zonefile . "\n"; + open MAINZONE, ">" . $zonefile or die $! . " " . $zonefile; + + print MAINZONE <<"EOF"; +\$TTL 3600 +@ IN SOA $nms::config::pri_hostname.$nms::config::tgname.gathering.org. abuse.gathering.org. ( + $serial; serial + 3600 ; refresh + 1800 ; retry + 608400 ; expire + 3600 ) ; minimum and default TTL + + IN NS $nms::config::pri_hostname.$nms::config::tgname.gathering.org. + IN NS $nms::config::sec_hostname.$nms::config::tgname.gathering.org. + +$nms::config::pri_hostname IN A $nms::config::pri_v4 +$nms::config::pri_hostname IN AAAA $nms::config::pri_v6 +$nms::config::sec_hostname IN A $nms::config::sec_v4 +$nms::config::sec_hostname IN AAAA $nms::config::sec_v6 +ns1 IN CNAME $nms::config::pri_hostname.$nms::config::tgname.gathering.org. +ns2 IN CNAME $nms::config::sec_hostname.$nms::config::tgname.gathering.org. + +; Generated by make-all-config.sh on the bootstrapping/nms server. +; Will not be overwritten unless it is missing ;) + +EOF + close MAINZONE; +} +else { print "Skipped TG-zone, file exists.\n"; } + +$zonefile = $base . "bind/infra." . $nms::config::tgname . ".gathering.org.zone"; +if ( not -f $zonefile ) +{ + print $zonefile . "\n"; + open MAINZONE, ">" . $zonefile or die $! . " " . $zonefile; + + print MAINZONE <<"EOF"; +\$TTL 3600 +@ IN SOA $nms::config::pri_hostname.$nms::config::tgname.gathering.org. abuse.gathering.org. ( + $serial; serial + 3600 ; refresh + 1800 ; retry + 608400 ; expire + 3600 ) ; minimum and default TTL + + IN NS $nms::config::pri_hostname.$nms::config::tgname.gathering.org. + IN NS $nms::config::sec_hostname.$nms::config::tgname.gathering.org. + +; Generated by make-all-config.sh on the bootstrapping/nms server. +; Will not be overwritten unless it is missing ;) +EOF + close MAINZONE; +} +else { print "Skipped infra-zone, file exists.\n"; } + +$zonefile = $base . "bind/" . $nms::config::ipv6zone . ".zone"; +if ( not -f $zonefile ) +{ + print $zonefile . "\n"; + open IPV6ZONE, ">" . $zonefile or die $! . " " . $zonefile; + + print IPV6ZONE <<"EOF"; +; autogenerated, and updated from dhcpd -- DO NOT TOUCH! +\$TTL 3600 +@ IN SOA $nms::config::pri_hostname.$nms::config::tgname.gathering.org. abuse.gathering.org. ( + $serial; serial + 3600 ; refresh + 1800 ; retry + 608400 ; expire + 3600 ) ; minimum and default TTL + + IN NS $nms::config::pri_hostname.$nms::config::tgname.gathering.org. + IN NS $nms::config::sec_hostname.$nms::config::tgname.gathering.org. + +; WARNING! Do not edit this file directly! +; on the bootstrapping/nms server! + +EOF + my $ip_pri = new Net::IP( $nms::config::pri_v6 ) or die ( "Error, new Net::IP for " . $nms::config::pri_v6 ); + my $ip_sec = new Net::IP( $nms::config::sec_v6 ) or die ( "Error, new Net::IP for " . $nms::config::sec_v6 ); + print IPV6ZONE $ip_pri->reverse_ip() . " IN PTR $nms::config::pri_hostname.$nms::config::tgname.gathering.org.\n"; + print IPV6ZONE $ip_sec->reverse_ip() . " IN PTR $nms::config::sec_hostname.$nms::config::tgname.gathering.org.\n"; + close IPV6ZONE; +} +else { print "Skipped v6-reverse-zone, file exists.\n"; } |