11{% from " bind/map.jinja" import map with context % }
22
3+ {%- set key_directory = salt[' pillar.get' ](' bind:lookup:key_directory' , map .key_directory) % }
4+ {%- set key_algorithm = salt[' pillar.get' ](' bind:lookup:key_algorithm' , map .key_algorithm) % }
5+ {%- set key_algorithm_field = salt[' pillar.get' ](' bind:lookup:key_algorithm_field' , map .key_algorithm_field) % }
6+ {%- set key_size = salt[' pillar.get' ](' bind:lookup:key_size' , map .key_size) % }
7+ {%- set key_flags = {' zsk' : 256 , ' ksk' : 257 } % }
8+
39include:
410 - bind
511
@@ -17,6 +23,7 @@ bind_restart:
1723 - reload : False
1824 - watch:
1925 - file : {{ map .chroot_dir }}{{ map .log_dir }}/ query.log
26+ - file : bind_key_directory
2027
2128{{ map .chroot_dir }}{{ map .log_dir }}/ query.log:
2229 file .managed:
@@ -109,6 +116,8 @@ bind_options_config:
109116 - user: {{ salt[' pillar.get' ](' bind:config:user' , map .user) }}
110117 - group: {{ salt[' pillar.get' ](' bind:config:group' , map .group) }}
111118 - mode: {{ salt[' pillar.get' ](' bind:config:mode' , ' 644' ) }}
119+ - context:
120+ key_directory: {{ map .key_directory }}
112121 - require:
113122 - pkg: bind
114123 - watch_in:
@@ -201,6 +210,15 @@ zones{{ dash_view }}-{{ zone }}{{ '.include' if serial_auto else ''}}:
201210 - require:
202211 - file : named_directory
203212
213+ {% if zone_data[' dnssec' ] is defined and zone_data[' dnssec' ] -% }
214+ signed- {{ zone }}:
215+ cmd.run:
216+ - cwd: {{ map .named_directory }}
217+ - name: zonesigner - zone {{ zone }} {{ file }}
218+ - prereq:
219+ - file : zones- {{ zone }}
220+ {% endif % }
221+
204222{% if serial_auto % }
205223zones{{ dash_view }}- {{ zone }}:
206224 module.wait:
@@ -237,7 +255,27 @@ signed{{ dash_view }}-{{ zone }}:
237255 - prereq:
238256 - file : zones{{ dash_view }}- {{ zone }}
239257{% endif % }
258+ {% endif % }
259+
260+ {% if zone_data[' auto-dnssec' ] is defined -% }
261+ zsk- {{ zone }}:
262+ cmd.run:
263+ - cwd: {{ key_directory }}
264+ - name: dnssec- keygen - a {{ key_algorithm }} - b {{ key_size }} - n ZONE {{ zone }}
265+ - runas: {{ map .user }}
266+ - unless: " grep {{ key_flags.zsk }} {{ key_directory }} /K{{ zone}} .+{{ key_algorithm_field }} +*.key"
267+ - require:
268+ - file : bind_key_directory
240269
270+ ksk- {{ zone }}:
271+ cmd.run:
272+ - cwd: {{ key_directory }}
273+ - name: dnssec- keygen - f KSK - a {{ key_algorithm }} - b {{ key_size }} - n ZONE {{ zone }}
274+ - runas: {{ map .user }}
275+ - unless: " grep {{ key_flags.ksk }} {{ key_directory }} /K{{ zone}} .+{{ key_algorithm_field }} +*.key"
276+ - require:
277+ - file : bind_key_directory
241278{% endif % }
279+
242280{% endfor % }
243281{% endfor % }
0 commit comments