url: null
# Main BIND conf vars
+named_conf_dir: "/var/named"
+named_conf_file: "/etc/named.conf"
+named_conf_data_dir: "/var/named/data"
+named_conf_listen_port: 53
+named_conf_listen_iface:
+ - 127.0.0.1
+ - "{{ ansible_all_ipv4_addresses[0] }}"
named_conf_zones_path: "/var/named/zones"
# Zone file conf vars
--- /dev/null
+---
+- name: Create named data directory
+ file:
+ path: "{{ named_conf_data_dir }}"
+ state: directory
+
+- name: Create named.conf
+ template:
+ src: named.conf.j2
+ dest: "{{ named_conf_file }}"
+ validate: named-checkconf %s
+ notify: restart named
+ with_dict: "{{ named_domains }}"
--- /dev/null
+#
+# {{ ansible_managed }}
+#
+
+options {
+ listen-on port {{ named_conf_listen_port }} { {% for interface in named_conf_listen_iface -%}{{ interface }}; {% endfor -%} };
+
+ directory "{{ named_conf_dir }}";
+ dump-file "{{ named_conf_data_dir }}/cache_dump.db";
+ statistics-file "{{ named_conf_data_dir }}/named_stats.txt";
+ memstatistics-file "{{ named_conf_data_dir }}/named_mem_stats.txt";
+
+ allow-query { any; };
+ recursion yes;
+ allow-recursion { any; };
+};
+
+logging {
+ channel default_debug {
+ file "{{ named_conf_data_dir }}/named.run";
+ severity dynamic;
+ };
+};
+
+# Forward zones
+{% for key, zone in named_domains.iteritems() %}
+zone "{{ key }}" {
+ type master;
+ file "{{ named_conf_zones_path }}/{{ key }}";
+};
+
+{% endfor %}
+
+# Reverse zones
+{% for key, zone in named_domains.iteritems() %}
+{% if zone.reverse is defined and zone.reverse.0 is defined %}
+{% for reverse in zone.reverse %}
+{% set octet1,octet2,octet3 = reverse.split('.') %}
+zone "{{ octet3 }}.{{ octet2 }}.{{ octet1 }}.in-addr.arpa" {
+ type master;
+ file "{{ named_conf_zones_path }}/{{ reverse }}";
+};
+
+{% endfor %}
+{% endif %}
+{% endfor %}