aboutsummaryrefslogtreecommitdiffstats
path: root/bootstrap/make-first-zones.pl
diff options
context:
space:
mode:
Diffstat (limited to 'bootstrap/make-first-zones.pl')
-rwxr-xr-xbootstrap/make-first-zones.pl108
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"; }