clean:
rm -f data/* json/* origins/*
-update: all
+update: update_bytemark update_geodns
+
+update_bytemark: all
bin/update
+update_geodns: all
+ parallel --will-cite rsync --quiet --recursive gdns/ {}::geodns ::: ${GEODNS_SERVERS}
+
lib/countries.xml:
curl -s -o $@ http://api.geonames.org/countryInfo?username=demo
bin/mkcountries bandwidth/tile.openstreetmap.yml origins/tile.openstreetmap.yml
data/tile.openstreetmap.org json/tile.openstreetmap.org.json origins/render.openstreetmap.yml: bin/mkgeo origins/tile.openstreetmap.yml src/tile.openstreetmap
- bin/mkgeo origins/tile.openstreetmap.yml src/tile.openstreetmap tile.openstreetmap.org origins/render.openstreetmap.yml
+ bin/mkgeo origins/tile.openstreetmap.yml src/tile.openstreetmap tile.openstreetmap.org origins/render.openstreetmap.yml tile
data/render.openstreetmap.org json/render.openstreetmap.org.json: bin/mkgeo origins/render.openstreetmap.yml src/render.openstreetmap
bin/mkgeo origins/render.openstreetmap.yml src/render.openstreetmap render.openstreetmap.org origins/total.openstreetmap.yml
my $targetoriginfile = shift @ARGV;
my $origins = YAML::LoadFile($originfile);
my $clusters = YAML::LoadFile($clusterfile);
+my $gdnsname = shift @ARGV;
my @servers;
# Initialise cluster details
$jsonfile->close();
$zonefile->close();
+# Output gdnsd configuration
+if (defined($gdnsname))
+{
+ my $gdnsmapfile = IO::File->new("> gdns/${gdnsname}.map") || die "$!";
+ my $gdnsresourcefile = IO::File->new("> gdns/${gdnsname}.resource") || die "$!";
+ my $continent = "";
+
+ $gdnsmapfile->print("${gdnsname} => {\n");
+ $gdnsmapfile->print(" geoip2_db => /var/lib/GeoIP/GeoLite2-Country.mmdb\n");
+ $gdnsmapfile->print(" datacenters => [" . join(",", sort(keys(%$clusters))) . "]\n");
+ $gdnsmapfile->print(" map => {\n");
+ $gdnsmapfile->print(" default => [" . join(",", sort(map { $_->{name} } grep { $_->{default} } values(%$clusters))) . "]\n");
+
+ foreach my $origin (sort { $a->{continent} cmp $b->{continent} || $a->{code} cmp $b->{code} } values %$origins)
+ {
+ my $code = $origin->{code};
+ my $cluster = $origin->{cluster}->{name};
+
+ next if $code eq "XK";
+
+ if ($continent ne $origin->{continent})
+ {
+ $gdnsmapfile->print(" }\n") if $continent;
+
+ $continent = $origin->{continent};
+
+ $gdnsmapfile->print(" ${continent} => {\n");
+ }
+
+ $gdnsmapfile->print(" ${code} => [${cluster}]\n");
+ }
+
+ $gdnsmapfile->print(" }\n") if $continent;
+
+ $gdnsmapfile->print(" }\n");
+ $gdnsmapfile->print("}\n");
+
+ $gdnsresourcefile->print("${gdnsname} => {\n");
+ $gdnsresourcefile->print(" map => ${gdnsname}\n");
+ $gdnsresourcefile->print(" dcmap => {\n");
+
+ foreach my $cluster (sort { $a->{name} cmp $b->{name} } values %$clusters)
+ {
+ my $name = $cluster->{name};
+
+ $gdnsresourcefile->print(" ${name} => ${name}.tile.openstreetmap.org.\n");
+ }
+
+ $gdnsresourcefile->print(" }\n");
+ $gdnsresourcefile->print("}\n");
+
+ $gdnsresourcefile->close();
+ $gdnsmapfile->close();
+}
+
# Output the target details in origin format if required
YAML::DumpFile($targetoriginfile, $targetorigins) if $targetoriginfile;