Browse Source

dns: slave - Manage bind9 slave zones/defs

Sebastien Badia 8 years ago
parent
commit
dce9c44b07
3 changed files with 81 additions and 0 deletions
  1. 42 0
      manifests/dns/slave.pp
  2. 22 0
      manifests/dns/slave_zone.pp
  3. 17 0
      templates/dns/slave.conf.erb

+ 42 - 0
manifests/dns/slave.pp

@@ -0,0 +1,42 @@
+# Module:: public
+# Manifest:: dns/slave.pp
+#
+# Lorraine Data Network http://ldn-fai.net/
+
+# Class:: public::dns::slave
+#
+#
+class public::dns::slave(
+  $slave_name = '',
+  $master = '',
+  $zonedir = '/var/cache/bind',
+  $zones = [],
+  $zones_source_base = '',
+  $named_conf_source = '',
+) {
+
+  public::dns::slave_zone { $slave_name:
+    slave_zones => $zones,
+    master      => $master,
+    zonedir     => $zonedir,
+  }
+
+  bind::server::file {[
+    'named.conf',
+    'acl.conf',
+  ]:
+    zonedir     => '/etc/bind',
+    owner       => 'bind',
+    group       => 'bind',
+    source_base => $zones_source_base,
+  }
+
+  bind::server::file {'named.conf.options':
+    zonedir => '/etc/bind',
+    owner   => 'bind',
+    group   => 'bind',
+    source  => $named_conf_source,
+  }
+
+
+} # Class:: dns::slave inherits dns

+ 22 - 0
manifests/dns/slave_zone.pp

@@ -0,0 +1,22 @@
+# Define:: public::dns::slave_zone
+#
+# Args::
+#   $master  = dns master
+#   $zonedir = slave zone dir
+#
+define public::dns::slave_zone(
+  $master      = '0.0.0.0',
+  $zonedir     = '/etc/bing',
+  $slave_zones = [],
+) {
+
+  file {
+    '/etc/bind/named.conf.local':
+      ensure  => file,
+      content => template('public/dns/slave.conf.erb'),
+      owner   => 'bind',
+      group   => 'bind',
+      mode    => '0644',
+  }
+
+} # Define: defname

+ 17 - 0
templates/dns/slave.conf.erb

@@ -0,0 +1,17 @@
+// MANAGED BY PUPPET
+// Module:: public::dns
+// File:: public/templates/dns/slave.conf.erb
+
+<% if !@slave_zones.empty? -%>
+// <%= @title %>
+<% @slave_zones.each do |zname| -%>
+zone "<%= zname %>" {
+  type slave;
+  masters { <%= @master %>; };
+  allow-query { any; };
+  allow-transfer { xfer; };
+  file "<%= @zonedir %>/db.<%= zname %>";
+};
+
+<% end -%>
+<% end -%>