make non dynamics zones on slaves to masters

This commit is contained in:
mwiegand 2021-11-19 00:38:01 +01:00
parent 87861aae98
commit 5c9dea327c
2 changed files with 25 additions and 38 deletions

View file

@ -46,17 +46,19 @@ view "${view_name}" {
% for zone_name, zone_conf in sorted(view_conf['zones'].items()): % for zone_name, zone_conf in sorted(view_conf['zones'].items()):
zone "${zone_name}" { zone "${zone_name}" {
type ${type}; % if type == 'slave' and zone_conf.get('allow_update', []):
% if type == 'slave': type slave;
masters { ${master_ip}; }; masters { ${master_ip}; };
% endif % else:
% if type == 'master' and zone_conf.get('allow_update', False): type master;
% if zone_conf.get('allow_update', []):
allow-update { allow-update {
% for allow_update in zone_conf['allow_update']: % for allow_update in zone_conf['allow_update']:
${allow_update}; ${allow_update};
% endfor % endfor
}; };
% endif % endif
% endif
file "/var/lib/bind/${view_name}/${zone_name}"; file "/var/lib/bind/${view_name}/${zone_name}";
}; };
% endfor % endfor

View file

@ -113,40 +113,25 @@ for view_name, view_conf in master_node.metadata.get('bind/views').items():
} }
for zone_name, zone_conf in view_conf['zones'].items(): for zone_name, zone_conf in view_conf['zones'].items():
if node.metadata.get('bind/type') == 'master': files[f"/var/lib/bind/{view_name}/{zone_name}"] = {
files[f"/var/lib/bind/{view_name}/{zone_name}"] = { 'source': 'db',
'source': 'db', 'content_type': 'mako',
'content_type': 'mako', 'unless': f"test -f /var/lib/bind/{view_name}/{zone_name}" if zone_conf.get('allow_update', False) else 'false',
'unless': f"test -f /var/lib/bind/{view_name}/{zone_name}" if zone_conf.get('allow_update', False) else 'false', 'context': {
'context': { 'serial': datetime.now().strftime('%Y%m%d%H'),
'serial': datetime.now().strftime('%Y%m%d%H'), 'records': zone_conf['records'],
'records': zone_conf['records'], 'hostname': node.metadata.get('bind/hostname'),
'hostname': node.metadata.get('bind/hostname'), 'type': node.metadata.get('bind/type'),
'type': node.metadata.get('bind/type'), },
}, 'owner': 'bind',
'owner': 'bind', 'group': 'bind',
'group': 'bind', 'needed_by': [
'needed_by': [ 'svc_systemd:bind9',
'svc_systemd:bind9', ],
], 'triggers': [
'triggers': [ 'svc_systemd:bind9:restart',
'svc_systemd:bind9:restart', ],
], }
}
else:
files[f"/var/lib/bind/{view_name}/{zone_name}"] = {
'content_type': 'any',
'owner': 'bind',
'group': 'bind',
}
if node.metadata.get('bind/type') == 'slave':
files[f"/var/lib/bind/diff"] = {
'content': sha3_512(json.dumps(master_node.metadata.get('bind'), cls=MetadataJSONEncoder, sort_keys=True).encode()).hexdigest(),
'triggers': [
'svc_systemd:bind9:restart',
],
}
svc_systemd['bind9'] = {} svc_systemd['bind9'] = {}