diff --git a/plays/dns.yml b/plays/dns.yml index 7f133c1a..aa9b0a56 100755 --- a/plays/dns.yml +++ b/plays/dns.yml @@ -15,3 +15,12 @@ zones: "{{ lookup('re2oapi', 'dnszones') }}" reverse: "{{ lookup('re2oapi', 'dnsreverse') }}" roles: ["bind-authoritative"] + +- hosts: silice.adm.crans.org + vars: + re2o: + server: re2o.adm.crans.org + service_user: "{{ vault_re2o_service_user }}" + service_password: "{{ vault_re2o_service_password }}" + roles: + - dns diff --git a/roles/dns/tasks/main.yml b/roles/dns/tasks/main.yml new file mode 100644 index 00000000..1c1e16d8 --- /dev/null +++ b/roles/dns/tasks/main.yml @@ -0,0 +1,52 @@ +--- +- name: Create dns directory + file: + path: /var/local/dns + state: directory + mode: '2775' + owner: root + group: nounou + +- name: Set ACL for dns directory + acl: + path: /var/local/dns + default: true + entity: nounou + etype: group + permissions: rwx + state: query + +- name: Clone dns repository + git: + repo: 'http://gitlab.adm.crans.org/nounous/dns.git' + dest: /var/local/dns + umask: '002' + +- name: Deploy re2o config + template: + src: dns/re2o-config.ini.j2 + dest: /var/local/dns/re2o-config.ini + mode: 0600 + owner: root + group: root + +- name: Create generated directory + file: + path: /var/cache/bind/generated + state: directory + mode: 0655 + owner: bind + group: bind + +- name: Create symbolic link to generated + file: + src: /var/cache/bind/generated + dest: /var/local/dns/generated + owner: root + group: root + state: link + +- name: Deploy cron for dns + template: + src: cron.d/dns.j2 + dest: /etc/cron.d/dns diff --git a/roles/dns/templates/cron.d/firewall.j2 b/roles/dns/templates/cron.d/firewall.j2 new file mode 100644 index 00000000..1fe89fad --- /dev/null +++ b/roles/dns/templates/cron.d/firewall.j2 @@ -0,0 +1,2 @@ +{{ ansible_header | comment }} +*/2 * * * * root /usr/bin/python3 /var/local/dns/dns.py -q diff --git a/roles/dns/templates/firewall/re2o-config.ini.j2 b/roles/dns/templates/firewall/re2o-config.ini.j2 new file mode 100644 index 00000000..7bf9a4ca --- /dev/null +++ b/roles/dns/templates/firewall/re2o-config.ini.j2 @@ -0,0 +1,5 @@ +{{ ansible_header | comment(decoration='; ') }} +[Re2o] +hostname = {{ re2o.server }} +username = {{ re2o.service_userĀ }} +password = {{ re2o.service_password }}