From 3ab12a29914c7f940e3ee1b3801f18944601e6bd Mon Sep 17 00:00:00 2001 From: Roxedus Date: Tue, 17 Aug 2021 00:11:04 +0200 Subject: [PATCH] Actually template dnsmasq --- ansible/roles/pi_dnsmasq/defaults/main.yml | 17 ++++++++++++- ansible/roles/pi_dnsmasq/tasks/main.yml | 13 +++++++++- .../pi_dnsmasq/templates/02-custom.conf.j2 | 25 ++++++++++--------- .../pi_dnsmasq/templates/hosts.custom.j2 | 10 +------- 4 files changed, 42 insertions(+), 23 deletions(-) diff --git a/ansible/roles/pi_dnsmasq/defaults/main.yml b/ansible/roles/pi_dnsmasq/defaults/main.yml index df4cafe..f540b88 100644 --- a/ansible/roles/pi_dnsmasq/defaults/main.yml +++ b/ansible/roles/pi_dnsmasq/defaults/main.yml @@ -1 +1,16 @@ -dmasq_local_domain: local +dnsmasq_local_domain: local + +dnsmasq: + aliases: + - ip: 10.0.0.1 + host: "router.{{ dnsmasq_local_domain }}" + servers: + - gateway: 10.0.1.1 + host: "router.iot.{{ dnsmasq_local_domain }}" + - gateway: 10.253.0.1 + host: "wg.{{ dnsmasq_local_domain }}" + mask: "10.253.0.0/24" + reverse: True + - gateway: 10.0.2.1 + host: "vm.{{ dnsmasq_local_domain }}" + lookup: True diff --git a/ansible/roles/pi_dnsmasq/tasks/main.yml b/ansible/roles/pi_dnsmasq/tasks/main.yml index 012b973..406c466 100644 --- a/ansible/roles/pi_dnsmasq/tasks/main.yml +++ b/ansible/roles/pi_dnsmasq/tasks/main.yml @@ -1,3 +1,8 @@ +- name: Check if dnsmasq is setup + stat: + path: "/etc/dnsmasq.d/" + register: dnsmasq_setup + - name: Set up dnsmasq hosts register: dnsmasq_hosts become: true @@ -9,6 +14,7 @@ dest: /etc/hosts.custom - name: Set up dnsmasq rules + when: dnsmasq_setup.stat.isdir is defined and dnsmasq_setup.stat.isdir register: dnsmasq become: true ansible.builtin.template: @@ -18,8 +24,13 @@ mode: 0644 dest: /etc/dnsmasq.d/02-custom.conf +- name: Check if PiHole is installed + stat: + path: "/usr/local/bin/pihole" + register: pihole_bin + - name: Restart PiHole systems - when: dnsmasq.changed or dnsmasq_hosts.changed + when: (dnsmasq.changed or dnsmasq_hosts.changed) and pihole_bin.stat.exists become: true ansible.builtin.command: argv: diff --git a/ansible/roles/pi_dnsmasq/templates/02-custom.conf.j2 b/ansible/roles/pi_dnsmasq/templates/02-custom.conf.j2 index ca7e7ba..7a675e0 100644 --- a/ansible/roles/pi_dnsmasq/templates/02-custom.conf.j2 +++ b/ansible/roles/pi_dnsmasq/templates/02-custom.conf.j2 @@ -1,17 +1,18 @@ -{{ ansible_managed | comment}} +{{ ansible_managed | comment }} # http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html addn-hosts=/etc/hosts.custom -address=/.{{ secret_wan_domain }}/10.0.0.29 +{% for alias in dnsmasq.aliases %} +address=/{{ alias.host }}/{{ alias.ip }} +{% endfor %} -rev-server=10.0.0.0/24,10.0.0.1 -server=/{{ dmasq_local_domain }}/10.0.0.1 +{% for server in dnsmasq.servers %} +{% if server.reverse|default(False) %} +rev-server={{ server.mask }},{{ server.gateway }} +{% endif %} +{% if server.lookup|default(False) %} +server=/{{ (server.gateway.split("."))[:3] | reverse | join(".") }}.in-addr.arpa/{{ server.gateway }} +{% endif %} +server=/{{ server.host }}/{{ server.gateway }} -rev-server=10.253.0.0/24,10.253.0.1 -server=/wg.{{ dmasq_local_domain }}/10.253.0.1 - -server=/2.0.10.in-addr.arpa/10.0.2.65 -server=/vm.{{ dmasq_local_domain }}/10.0.2.65 - -server=/2.0.10.in-addr.arpa/10.0.2.0 -server=/man.{{ dmasq_local_domain }}/10.0.2.1 \ No newline at end of file +{% endfor %} diff --git a/ansible/roles/pi_dnsmasq/templates/hosts.custom.j2 b/ansible/roles/pi_dnsmasq/templates/hosts.custom.j2 index 4ac4155..5c02948 100644 --- a/ansible/roles/pi_dnsmasq/templates/hosts.custom.j2 +++ b/ansible/roles/pi_dnsmasq/templates/hosts.custom.j2 @@ -1,9 +1 @@ -{{ ansible_managed | comment}} - -10.0.0.29 {{ secret_wan_domain }} -10.0.0.30 {{ secret_unraid_uuid }}.unraid.net - -10.0.2.3 vcenter.man.{{ dmasq_local_domain }} -10.0.2.5 9010.esxi.man.{{ dmasq_local_domain }} -10.0.2.6 r710.esxi.man.{{ dmasq_local_domain }} -10.0.2.16 r710.man.{{ dmasq_local_domain }} \ No newline at end of file +{{ ansible_managed | comment }}