mirror of
https://github.com/saltstack-formulas/bind-formula.git
synced 2025-04-17 10:10:26 +00:00
68 lines
1.9 KiB
Text
68 lines
1.9 KiB
Text
# vim: sts=2 ts=2 sw=2 et ai
|
|
//
|
|
// Do any local configuration here
|
|
//
|
|
|
|
// Consider adding the 1918 zones here, if they are not used in your
|
|
// organization
|
|
//include "/etc/bind/zones.rfc1918";
|
|
|
|
{%- macro zone(key, args, file, masters) %}
|
|
zone "{{ key }}" {
|
|
type {{ args['type'] }};
|
|
{% if args['dnssec'] is defined and args['dnssec'] -%}
|
|
file "zones/{{ file }}.signed";
|
|
{% else -%}
|
|
file "zones/{{ file }}";
|
|
{%- endif %}
|
|
{% if args['allow-update'] is defined -%}
|
|
allow-update { {{args['allow-update']}}; };
|
|
{%- endif %}
|
|
{% if args['type'] == "master" -%}
|
|
{% if args['notify'] -%}
|
|
notify yes;
|
|
{% else -%}
|
|
notify no;
|
|
{%- endif -%}
|
|
{% else -%}
|
|
notify no;
|
|
masters { {{ masters }} };
|
|
{%- endif %}
|
|
};
|
|
{%- endmacro %}
|
|
|
|
{%- if not pillar.bind.configured_views is defined %}
|
|
include "/etc/bind/named.conf.default-zones";
|
|
{%- endif %}
|
|
|
|
{% for key,args in salt['pillar.get']('bind:configured_zones', {}).iteritems() -%}
|
|
{%- set file = salt['pillar.get']("bind:available_zones:" + key + ":file") %}
|
|
{%- set masters = salt['pillar.get']("bind:available_zones:" + key + ":masters") %}
|
|
{{ zone(key, args, file, masters) }}
|
|
{% endfor %}
|
|
|
|
{% for view, view_data in salt['pillar.get']('bind:configured_views', {}).iteritems() %}
|
|
|
|
view {{ view }}{
|
|
{%- if view == 'default' %}
|
|
include "/etc/bind/named.conf.default-zones";
|
|
{%- endif %}
|
|
|
|
match-clients{
|
|
{%- for acl in view_data.get('match_clients', {}) %}
|
|
{{ acl }};
|
|
{%- endfor %}
|
|
};
|
|
|
|
{% for key,args in view_data.get('configured_zones', {}).iteritems() -%}
|
|
{%- set file = salt['pillar.get']("bind:available_zones:" + key + ":file") %}
|
|
{%- set masters = salt['pillar.get']("bind:available_zones:" + key + ":masters") %}
|
|
{{ zone(key, args, file, masters) }}
|
|
{%- endfor %}
|
|
};
|
|
{%- endfor %}
|
|
|
|
logging {
|
|
channel "querylog" { file "{{ map.log_dir }}/query.log"; print-time yes; };
|
|
category queries { querylog; };
|
|
};
|