commit 7335a8decf72e50d0049020f522df4e09df5a04d Author: Philip (a-0) <@ph:a-0.me> Date: Sun Aug 7 13:01:55 2022 +0200 Initial commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..11a8f1b --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +A minimal ansible role to set up dnsmasq on any linux machine for dns caching. + +It will disable systemd-resolved in the process and be available at localhost:53 \ No newline at end of file diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..1d831bf --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,3 @@ +--- +dnsmasq_os_supported: False +dnsmasq_upstream_server: 9.9.9.9 \ No newline at end of file diff --git a/example_playbook.yml b/example_playbook.yml new file mode 100644 index 0000000..94d62b2 --- /dev/null +++ b/example_playbook.yml @@ -0,0 +1,5 @@ +- hosts: my.machine.tld + roles: + - dnsmasq + vars: + dnsmasq_upstream_server: "208.67.222.220" \ No newline at end of file diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..2002130 --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,2 @@ +--- +galaxy_info: \ No newline at end of file diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..f216b6c --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,43 @@ +--- +- name: Set OS dependent variables + ansible.builtin.include_vars: "{{ lookup('first_found', params) }}" + vars: + params: + files: + - "{{ ansible_distribution | lower }}_{{ ansible_distribution_version | lower }}.yml" + - "{{ ansible_distribution | lower }}_{{ ansible_distribution_major_version | lower }}.yml" + - "{{ ansible_distribution | lower }}.yml" + - "{{ ansible_os_family | lower }}.yml" + - "{{ ansible_system | lower }}.yml" + paths: + - '{{ role_path }}/vars' + ignore_errors: True + +- name: OS is supported + ansible.builtin.assert: + that: __os_supported + quiet: True + vars: + __os_supported: "{{ lookup('vars', '{}_os_supported'.format(role_name)) | bool }}" + +- name: Disable and stop systemd-resolved + service: + name: systemd-resolved + state: stopped + enabled: no + +- name: Install dnsmasq + apt: + name: dnsmasq + state: latest + +- name: Set dnsmasq config + template: + src: default.conf + dest: /etc/dnsmasq.d/default.conf + +- name: Enable and restart dnsmasq + service: + name: dnsmasq + state: restarted + enabled: yes \ No newline at end of file diff --git a/templates/default.conf.j2 b/templates/default.conf.j2 new file mode 100644 index 0000000..878b848 --- /dev/null +++ b/templates/default.conf.j2 @@ -0,0 +1,4 @@ +listen-address=127.0.0.1 +cache-size=10000 + +server={{ dnsmasq_upstream_server }} \ No newline at end of file diff --git a/vars/debian.yml b/vars/debian.yml new file mode 100644 index 0000000..5547130 --- /dev/null +++ b/vars/debian.yml @@ -0,0 +1,2 @@ +--- +dnsmasq_os_supported: True