Make a roles::dns_geodns
[mirror/dsa-puppet.git] / modules / named / manifests / geodns.pp
index 5f9b0f6..d9684f3 100644 (file)
@@ -3,12 +3,9 @@ class named::geodns inherits named {
                script => bind
        }
 
-       #site::aptrepo { 'geoip':
-       #       url        => 'http://db.debian.org/debian-admin',
-       #       suite      => 'lenny-bind-geoip',
-       #       components => 'main',
-       #}
-       site::aptrepo { 'geoip': ensure => absent }
+       package { 'geoip-database':
+               ensure => installed,
+       }
 
        file { '/etc/bind/':
                ensure  => directory,
@@ -21,14 +18,20 @@ class named::geodns inherits named {
                ensure => directory,
                mode   => '0755',
        }
-       file { '/etc/bind/named.conf.options':
-               content => template('named/named.conf.options.erb'),
-       }
        file { '/etc/bind/named.conf.local':
                source => 'puppet:///modules/named/common/named.conf.local',
+               notify  => Service['bind9'],
        }
-       file { '/etc/bind/named.conf.acl':
-               source => 'puppet:///modules/named/common/named.conf.acl',
+        if (versioncmp($::lsbmajdistrelease, '9') >= 0) {
+               file { '/etc/bind/named.conf.acl':
+                       source => 'puppet:///modules/named/common/named.conf.acl',
+                       notify  => Service['bind9'],
+               }
+       } else {
+               file { '/etc/bind/named.conf.acl':
+                       source => 'puppet:///modules/named/common/named.conf.acl.bind99',
+                       notify  => Service['bind9'],
+               }
        }
        file { '/etc/bind/geodns/zonefiles':
                ensure => directory,
@@ -38,6 +41,7 @@ class named::geodns inherits named {
        }
        file { '/etc/bind/geodns/named.conf.geo':
                source => 'puppet:///modules/named/common/named.conf.geo',
+               notify  => Service['bind9'],
        }
        file { '/etc/bind/geodns/trigger':
                mode   => '0555',
@@ -48,7 +52,17 @@ class named::geodns inherits named {
                group  => geodnssync,
                mode   => '0440',
        }
-       file { '/etc/cron.d/dsa-boot-geodnssync':
-               source => 'puppet:///modules/named/common/cron-geo'
+       file { '/etc/cron.d/dsa-boot-geodnssync': ensure => absent; }
+       concat::fragment { 'dsa-puppet-stuff--geodns-boot':
+               target => '/etc/cron.d/dsa-puppet-stuff',
+               content  => @(EOF)
+                       @reboot geodnssync sleep 1m && /etc/bind/geodns/trigger > /dev/null
+                       | EOF
+       }
+
+       @ferm::rule { '01-dsa-bind':
+               domain      => '(ip ip6)',
+               description => 'Allow nameserver access',
+               rule        => '&TCP_UDP_SERVICE(53)'
        }
 }