diff --git a/bind/config.sls b/bind/config.sls index 4d8818c..d133a53 100644 --- a/bind/config.sls +++ b/bind/config.sls @@ -117,13 +117,13 @@ bind_default_zones: map: {{ map }} {% endif %} -{% for key, args in salt['pillar.get']('bind:configured_zones', {}).iteritems() -%} -{%- set file = salt['pillar.get']("bind:available_zones:" + key + ":file") %} -{% if file and args['type'] == "master" -%} -zones-{{ file }}: +{% for zone, zone_data in salt['pillar.get']('bind:configured_zones', {}).iteritems() -%} +{%- set file = salt['pillar.get']("bind:available_zones:" + zone + ":file") %} +{% if file and zone_data['type'] == "master" -%} +zones-{{ zone }}: file.managed: - name: {{ map.named_directory }}/{{ file }} - - source: 'salt://bind/zones/{{ file }}' + - source: 'salt://{{ map.zones_source_dir }}/{{ file }}' - user: {{ salt['pillar.get']('bind:config:user', map.user) }} - group: {{ salt['pillar.get']('bind:config:group', map.group) }} - mode: {{ salt['pillar.get']('bind:config:mode', '644') }} @@ -132,26 +132,26 @@ zones-{{ file }}: - require: - file: named_directory -{% if args['dnssec'] is defined and args['dnssec'] -%} -signed-{{ file }}: +{% if zone_data['dnssec'] is defined and zone_data['dnssec'] -%} +signed-{{ zone }}: cmd.run: - cwd: {{ map.named_directory }} - - name: zonesigner -zone {{ key }} {{ file }} + - name: zonesigner -zone {{ zone }} {{ file }} - prereq: - - file: zones-{{ file }} + - file: zones-{{ zone }} {% endif %} {% endif %} {% endfor %} {%- for view, view_data in salt['pillar.get']('bind:configured_views', {}).iteritems() %} -{% for key,args in view_data.get('configured_zones', {}).iteritems() -%} -{%- set file = salt['pillar.get']("bind:available_zones:" + key + ":file") %} -{% if file and args['type'] == "master" -%} -zones-{{ file }}: +{% for zone, zone_data in view_data.get('configured_zones', {}).iteritems() -%} +{%- set file = salt['pillar.get']("bind:available_zones:" + zone + ":file") %} +{% if file and zone_data['type'] == "master" -%} +zones-{{ view }}-{{ zone }}: file.managed: - name: {{ map.named_directory }}/{{ file }} - - source: 'salt://bind/zones/{{ file }}' + - source: 'salt://{{ map.zones_source_dir }}/{{ file }}' - user: {{ salt['pillar.get']('bind:config:user', map.user) }} - group: {{ salt['pillar.get']('bind:config:group', map.group) }} - mode: {{ salt['pillar.get']('bind:config:mode', '644') }} @@ -160,13 +160,13 @@ zones-{{ file }}: - require: - file: named_directory -{% if args['dnssec'] is defined and args['dnssec'] -%} -signed-{{ file }}: +{% if zone_data['dnssec'] is defined and zone_data['dnssec'] -%} +signed-{{ view }}-{{ zone }}: cmd.run: - cwd: {{ map.named_directory }} - - name: zonesigner -zone {{ key }} {{ file }} + - name: zonesigner -zone {{ zone }} {{ file }} - prereq: - - file: zones-{{ file }} + - file: zones-{{ view }}-{{ zone }} {% endif %} {% endif %} diff --git a/bind/map.jinja b/bind/map.jinja index 5c21c3f..55eb4ca 100644 --- a/bind/map.jinja +++ b/bind/map.jinja @@ -3,6 +3,7 @@ 'pkgs': ['bind9', 'bind9utils', 'dnssec-tools'], 'service': 'bind9', 'config_source_dir': 'bind/files/debian', + 'zones_source_dir': '/srv/salt/zones', 'config': '/etc/bind/named.conf', 'local_config': '/etc/bind/named.conf.local', 'key_config': '/etc/bind/named.conf.key', @@ -18,6 +19,7 @@ 'pkgs': ['bind'], 'service': 'named', 'config_source_dir': 'bind/files/redhat', + 'zones_source_dir': '/srv/salt/zones', 'config': '/etc/named.conf', 'local_config': '/etc/named.conf.local', 'named_directory': '/var/named/data', diff --git a/bind/zones b/bind/zones deleted file mode 120000 index 82df46a..0000000 --- a/bind/zones +++ /dev/null @@ -1 +0,0 @@ -/srv/salt/zones \ No newline at end of file