aboutsummaryrefslogtreecommitdiffstats
path: root/roles/dnsmasq
diff options
context:
space:
mode:
authorStonewall Jackson <stonewall@sacredheartsc.com>2023-02-04 01:23:43 -0500
committerStonewall Jackson <stonewall@sacredheartsc.com>2023-02-04 01:52:13 -0500
commit0261e875679f1bf63c8d689da7fc7e014597885d (patch)
tree3f19cd74a0c1070944f75437f30b098d6ef2ffcb /roles/dnsmasq
downloadselfhosted-0261e875679f1bf63c8d689da7fc7e014597885d.tar.gz
selfhosted-0261e875679f1bf63c8d689da7fc7e014597885d.zip
initial commit
Diffstat (limited to 'roles/dnsmasq')
-rw-r--r--roles/dnsmasq/defaults/main.yml8
-rw-r--r--roles/dnsmasq/handlers/main.yml4
-rw-r--r--roles/dnsmasq/tasks/main.yml16
-rw-r--r--roles/dnsmasq/templates/etc/NetworkManager/conf.d/9A-dns.conf.j29
-rw-r--r--roles/dnsmasq/templates/etc/NetworkManager/dnsmasq.d/00-dnsmasq.conf.j27
5 files changed, 44 insertions, 0 deletions
diff --git a/roles/dnsmasq/defaults/main.yml b/roles/dnsmasq/defaults/main.yml
new file mode 100644
index 0000000..9c83a2c
--- /dev/null
+++ b/roles/dnsmasq/defaults/main.yml
@@ -0,0 +1,8 @@
+dnsmasq_nameservers: '{{ vlan.dns_servers }}'
+dnsmasq_searchdomain: '{{ domain }}'
+dnsmasq_resolv_options:
+ - rotate
+
+dnsmasq_cache_size: 1000
+dnsmasq_negcache: no
+dnsmasq_all_servers: yes
diff --git a/roles/dnsmasq/handlers/main.yml b/roles/dnsmasq/handlers/main.yml
new file mode 100644
index 0000000..a4e4bec
--- /dev/null
+++ b/roles/dnsmasq/handlers/main.yml
@@ -0,0 +1,4 @@
+- name: restart NetworkManager
+ systemd:
+ name: NetworkManager
+ state: restarted
diff --git a/roles/dnsmasq/tasks/main.yml b/roles/dnsmasq/tasks/main.yml
new file mode 100644
index 0000000..5505897
--- /dev/null
+++ b/roles/dnsmasq/tasks/main.yml
@@ -0,0 +1,16 @@
+- name: install dnsmasq
+ dnf:
+ name: dnsmasq
+ state: present
+
+- name: configure NetworkManager to use dnsmasq
+ template:
+ src: etc/NetworkManager/conf.d/9A-dns.conf.j2
+ dest: /etc/NetworkManager/conf.d/9A-dns.conf
+ notify: restart NetworkManager
+
+- name: configure dnsmasq
+ template:
+ src: etc/NetworkManager/dnsmasq.d/00-dnsmasq.conf.j2
+ dest: /etc/NetworkManager/dnsmasq.d/00-dnsmasq.conf
+ notify: restart NetworkManager
diff --git a/roles/dnsmasq/templates/etc/NetworkManager/conf.d/9A-dns.conf.j2 b/roles/dnsmasq/templates/etc/NetworkManager/conf.d/9A-dns.conf.j2
new file mode 100644
index 0000000..91ae064
--- /dev/null
+++ b/roles/dnsmasq/templates/etc/NetworkManager/conf.d/9A-dns.conf.j2
@@ -0,0 +1,9 @@
+[main]
+dns=dnsmasq
+
+[global-dns]
+searches={{ dnsmasq_searchdomain if dnsmasq_searchdomain is string else (dnsmasq_searchdomain | join(',')) }}
+options={{ dnsmasq_resolv_options if dnsmasq_resolv_options is string else (dnsmasq_resolv_options | join(',')) }}
+
+[global-dns-domain-*]
+servers={{ dnsmasq_nameservers | join(',') }}
diff --git a/roles/dnsmasq/templates/etc/NetworkManager/dnsmasq.d/00-dnsmasq.conf.j2 b/roles/dnsmasq/templates/etc/NetworkManager/dnsmasq.d/00-dnsmasq.conf.j2
new file mode 100644
index 0000000..c87ec98
--- /dev/null
+++ b/roles/dnsmasq/templates/etc/NetworkManager/dnsmasq.d/00-dnsmasq.conf.j2
@@ -0,0 +1,7 @@
+cache-size={{ dnsmasq_cache_size }}
+{% if not dnsmasq_negcache %}
+no-negcache
+{% endif %}
+{% if dnsmasq_all_servers %}
+all-servers
+{% endif %}