diff --git a/bind/config.sls b/bind/config.sls index 03ff51b..1394904 100644 --- a/bind/config.sls +++ b/bind/config.sls @@ -202,9 +202,9 @@ bind_rndc_client_config: {%- set views = {False: salt['pillar.get']('bind', {})} %}{# process non-view zones in the same loop #} {%- do views.update(salt['pillar.get']('bind:configured_views', {})) %} -{%- for view, view_data in views.items() %} +{%- for view, view_data in views|dictsort %} {%- set dash_view = '-' + view if view else '' %} -{% for zone, zone_data in view_data.get('configured_zones', {}).items() -%} +{% for zone, zone_data in view_data.get('configured_zones', {})|dictsort -%} {%- set file = salt['pillar.get']("bind:available_zones:" + zone + ":file", false) %} {%- set zone_records = salt['pillar.get']('bind:available_zones:' + zone + ':records', {}) %} {%- if salt['pillar.get']('bind:available_zones:' + zone + ':generate_reverse') %} diff --git a/bind/files/arch/named.conf b/bind/files/arch/named.conf index 8891b6b..145974a 100644 --- a/bind/files/arch/named.conf +++ b/bind/files/arch/named.conf @@ -1,7 +1,7 @@ // vim:set ts=4 sw=4 et: options { - directory "{{ named_directory }}"; + directory "{{ map.get('named_directory') }}"; pid-file "/run/named/named.pid"; // Uncomment these to enable IPv6 connections support @@ -11,7 +11,7 @@ options { // listen-on { none; }; {#- Allow inclusion of arbitrary statements #} - {%- for statement, value in salt['pillar.get']('bind:config:options', {}).items() -%} + {%- for statement, value in salt['pillar.get']('bind:config:options', {})|dictsort -%} {%- if value is iterable and value is not string %} {{ statement }} { {%- for item in value %} diff --git a/bind/files/debian/named.conf.key b/bind/files/debian/named.conf.key index 74690e3..cb75e7e 100644 --- a/bind/files/debian/named.conf.key +++ b/bind/files/debian/named.conf.key @@ -3,7 +3,7 @@ // Do any local configuration here // -{% for key,args in salt['pillar.get']('bind:keys', {}).items() -%} +{% for key,args in salt['pillar.get']('bind:keys', {})|dictsort -%} key "{{ key }}" { algorithm {{ args['algorithm'] | default('HMAC-MD5.SIG-ALG.REG.INT') }}; secret "{{ args['secret'] }}"; diff --git a/bind/files/debian/named.conf.options b/bind/files/debian/named.conf.options index df31290..ecffa89 100644 --- a/bind/files/debian/named.conf.options +++ b/bind/files/debian/named.conf.options @@ -27,7 +27,7 @@ options { {%- endif -%} {#- Allow inclusion of arbitrary statements #} -{%- for statement, value in salt['pillar.get']('bind:config:options', {}).items() -%} +{%- for statement, value in salt['pillar.get']('bind:config:options', {})|dictsort -%} {%- if value is iterable and value is not string %} {{ statement }} { {%- for item in value %} diff --git a/bind/files/debian/rndc.conf b/bind/files/debian/rndc.conf index 1905381..52a7d4d 100644 --- a/bind/files/debian/rndc.conf +++ b/bind/files/debian/rndc.conf @@ -5,13 +5,13 @@ options { }; -{% for key,args in salt['pillar.get']('bind:rndc_client:server', {}).items() -%} +{% for key,args in salt['pillar.get']('bind:rndc_client:server', {})|dictsort -%} server "{{ key }}" { key {{ args['key'] }}; }; {% endfor %} -{% for key,args in salt['pillar.get']('bind:keys', {}).items() -%} +{% for key,args in salt['pillar.get']('bind:keys', {})|dictsort -%} key "{{ key }}" { algorithm {{ args['algorithm'] | default('HMAC-MD5.SIG-ALG.REG.INT') }}; secret "{{ args['secret'] }}"; diff --git a/bind/files/freebsd/named.conf b/bind/files/freebsd/named.conf index 510a8ba..19db5aa 100644 --- a/bind/files/freebsd/named.conf +++ b/bind/files/freebsd/named.conf @@ -11,7 +11,7 @@ options { // All file and path names are relative to the chroot directory, // if any, and should be fully qualified. - directory "{{ named_directory }}"; + directory "{{ map.get('named_directory') }}"; pid-file "/var/run/named/pid"; dump-file "/var/dump/named_dump.db"; statistics-file "/var/stats/named.stats"; @@ -71,7 +71,7 @@ options { {%- endif -%} {#- Allow inclusion of arbitrary statements #} -{%- for statement, value in salt['pillar.get']('bind:config:options', {}).items() -%} +{%- for statement, value in salt['pillar.get']('bind:config:options', {})|dictsort -%} {%- if value is iterable and value is not string %} {{ statement }} { {%- for item in value %} @@ -379,7 +379,7 @@ zone "1.168.192.in-addr.arpa" { include "{{ map.local_config }}"; {%- if 'keys' in salt['pillar.get']('bind') %} -{% for key,args in salt['pillar.get']('bind:keys', {}).items() -%} +{% for key,args in salt['pillar.get']('bind:keys', {})|dictsort -%} key "{{ key }}" { algorithm {{ args['algorithm'] | default('HMAC-MD5.SIG-ALG.REG.INT') }}; secret "{{ args['secret'] }}"; diff --git a/bind/files/named.conf.local.jinja b/bind/files/named.conf.local.jinja index aa2c3e5..3b20820 100644 --- a/bind/files/named.conf.local.jinja +++ b/bind/files/named.conf.local.jinja @@ -77,7 +77,7 @@ zone "{{ key }}" { include "{{ map.default_zones_config }}"; {%- endif %} -{% for key, args in salt['pillar.get']('bind:configured_zones', {}).items() -%} +{% for key, args in salt['pillar.get']('bind:configured_zones', {})|dictsort -%} {%- if salt['pillar.get']("bind:configured_zones:" + key + ":file") -%} {%- set file = salt['pillar.get']("bind:configured_zones:" + key + ":file") %} {% else %} @@ -92,7 +92,7 @@ include "{{ map.default_zones_config }}"; {{ zone(key, args, file, masters) }} {% endfor %} -{% for view, view_data in salt['pillar.get']('bind:configured_views', {}).items() %} +{% for view, view_data in salt['pillar.get']('bind:configured_views', {})|dictsort %} view {{ view }} { {%- if view == 'default' %} @@ -105,7 +105,7 @@ match-clients { {%- endfor %} }; -{% for key, args in view_data.get('configured_zones', {}).items() -%} +{% for key, args in view_data.get('configured_zones', {})|dictsort -%} {%- 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) }} @@ -129,7 +129,7 @@ logging { {%- if salt['pillar.get']('bind:controls', False) %} controls { - {%- for name, control in salt['pillar.get']('bind:controls').iteritems() if control.get('enabled', True) %} + {%- for name, control in salt['pillar.get']('bind:controls')|dictsort if control.get('enabled', True) %} inet {{ control.get('bind', {}).get('address', '127.0.0.1') }} port {{ control.get('bind', {}).get('port', 953) }} {%- if control.get('allow') %} allow { @@ -151,7 +151,7 @@ controls { {%- if salt['pillar.get']('bind:statistics', False) %} statistics-channels { - {%- for name, channel in salt['pillar.get']('bind:statistics').iteritems() if channel.get('enabled', True) %} + {%- for name, channel in salt['pillar.get']('bind:statistics')|dictsort if channel.get('enabled', True) %} inet {{ channel.get('bind', {}).get('address', '127.0.0.1') }} port {{ channel.get('bind', {}).get('port', 953) }} {%- if channel.get('allow') %} allow { @@ -165,7 +165,7 @@ statistics-channels { {%- endif %} -{%- for name, data in salt['pillar.get']('bind:configured_acls', {}).items() %} +{%- for name, data in salt['pillar.get']('bind:configured_acls', {})|dictsort %} acl {{ name }} { {%- for d in data %} {{ d }}; @@ -173,7 +173,7 @@ acl {{ name }} { }; {%- endfor %} -{%- for name, data in salt['pillar.get']('bind:configured_masters', {}).items() %} +{%- for name, data in salt['pillar.get']('bind:configured_masters', {})|dictsort %} masters {{ name }} { {%- for d in data %} {{ d }}; diff --git a/bind/files/redhat/named.conf b/bind/files/redhat/named.conf index c4ac374..6a04da1 100644 --- a/bind/files/redhat/named.conf +++ b/bind/files/redhat/named.conf @@ -14,7 +14,7 @@ options { memstatistics-file "{{ map.get('named_directory') }}/data/named_mem_stats.txt"; {#- Allow inclusion of arbitrary statements #} -{%- for statement, value in salt['pillar.get']('bind:config:options', map.get('options', {})).items() -%} +{%- for statement, value in salt['pillar.get']('bind:config:options', map.get('options', {}))|dictsort -%} {%- if value is iterable and value is not string %} {{ statement }} { {%- for item in value %} diff --git a/bind/files/suse/named.conf b/bind/files/suse/named.conf index 563c4fa..c6eafac 100644 --- a/bind/files/suse/named.conf +++ b/bind/files/suse/named.conf @@ -18,7 +18,7 @@ options { # The directory statement defines the name server's working directory - directory "{{ named_directory }}"; + directory "{{ map.get('named_directory') }}"; # enable DNSSEC validation # @@ -99,7 +99,7 @@ options { {% endif %} {#- Allow inclusion of arbitrary statements #} -{%- for statement, value in salt['pillar.get']('bind:config:options', map.get('options', {})).items() -%} +{%- for statement, value in salt['pillar.get']('bind:config:options', map.get('options', {}))|dictsort -%} {%- if value is iterable and value is not string %} {{ statement }} { {%- for item in value %} diff --git a/bind/files/zone.jinja b/bind/files/zone.jinja index 608b63c..3f1f2f8 100644 --- a/bind/files/zone.jinja +++ b/bind/files/zone.jinja @@ -28,11 +28,11 @@ $TTL {{ soa['ttl'] }} {% if include %} $INCLUDE {{ include }} {% else %} -{% for type, rrs in records.iteritems() %} +{% for type, rrs in records|dictsort %} ; ; {{ type }} RRs ; -{%- for host, data in rrs.iteritems() %} +{%- for host, data in rrs|dictsort %} {%- if data is number or data is string %} {{ host }} {{ type }} {{ data }} {%- elif data is iterable %}