diff options
| author | Mitchell Riedstra <mitch@riedstra.dev> | 2025-12-16 23:02:49 -0500 |
|---|---|---|
| committer | Mitchell Riedstra <mitch@riedstra.dev> | 2025-12-16 23:02:49 -0500 |
| commit | a468044c0337d1a2ac0dab2ce3efc4ad766f81a3 (patch) | |
| tree | ca7d1523a6b43e14dc4fb6d2cd15966774faa237 /tasks | |
| parent | 256ed8e7653b1963e1cc2b6d30aa636e9766d07b (diff) | |
| download | nsd-a468044c0337d1a2ac0dab2ce3efc4ad766f81a3.tar.gz nsd-a468044c0337d1a2ac0dab2ce3efc4ad766f81a3.tar.xz | |
Rework the NSD role to support more operating systems with minimal effort and duplication
Diffstat (limited to 'tasks')
| -rw-r--r-- | tasks/alpine.yml | 24 | ||||
| -rw-r--r-- | tasks/linux.yml | 36 | ||||
| -rw-r--r-- | tasks/main.yml | 93 | ||||
| -rw-r--r-- | tasks/openbsd.yml | 22 |
4 files changed, 87 insertions, 88 deletions
diff --git a/tasks/alpine.yml b/tasks/alpine.yml deleted file mode 100644 index 7b73870..0000000 --- a/tasks/alpine.yml +++ /dev/null @@ -1,24 +0,0 @@ -- name: Install Runit service directory - file: - state: directory - path: /etc/sv/nsd - mode: '0755' -- name: Install Runit service command - template: - src: run.j2 - dest: /etc/sv/nsd/run - mode: '755' -- name: Install supervise symlink - file: - state: link - force: yes - src: /run/supervise.nsd - dest: /etc/sv/nsd/supervise - follow: false -- name: Enable NSD service - file: - state: link - force: yes - src: /etc/sv/nsd - dest: /var/service/nsd - follow: false diff --git a/tasks/linux.yml b/tasks/linux.yml deleted file mode 100644 index 346c088..0000000 --- a/tasks/linux.yml +++ /dev/null @@ -1,36 +0,0 @@ ---- -- name: 'Install NSD [Void]' - xbps: - state: present - name: nsd - when: ansible_facts['distribution'].lower() == "void" -- name: 'Install NSD [Alpine]' - apk: - state: present - name: nsd - when: ansible_facts['distribution'].lower() == "alpine" -- name: Install nsd.conf - template: - src: nsd.conf - dest: /etc/nsd/nsd.conf -- name: Install zone files - template: - src: 'zones/{{item}}' - dest: '/etc/nsd/{{item}}.zone' - validate: 'nsd-checkzone {{item}} %s' - owner: root - group: nsd - mode: 0640 - loop: "{{nsd_zones}}" - notify: - - Restart NSD -- name: Include Alpine Linux Speicifc Tasks - include_tasks: alpine.yml - when: ansible_facts['distribution'].lower() == "alpine" -- name: Enable NSD - file: - src: /etc/sv/nsd - dest: /var/service/nsd - owner: root - group: root - state: link diff --git a/tasks/main.yml b/tasks/main.yml index ebb9733..158eb6f 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,7 +1,88 @@ --- -- name: Include Linux tasks - include_tasks: linux.yml - when: ansible_facts['system'].lower() == "linux" -- name: Include OpenBSD Tasks - include_tasks: openbsd.yml - when: ansible_facts['system'].lower() == "openbsd" +- name: 'Include OpenBSD vars' + include_vars: 'openbsd.yml' + when: is_openbsd +- name: 'Check for runit' + set_fact: + use_runit: true + when: is_alpine or is_voidlinux or is_deb +- name: 'VoidLinux: Install NSD' + xbps: + state: present + name: nsd + when: is_voidlinux +- name: 'Alpine: Install NSD' + apk: + state: present + name: nsd + when: is_alpine +- name: 'RHEL: Install epel' + yum: + state: present + name: epel-release + when: is_rhel +- name: 'RHEL: Install NSD' + yum: + state: present + name: nsd + when: is_rhel +- name: 'debian: Install NSD' + apt: + state: present + name: nsd + when: is_deb +- name: Install nsd.conf + template: + src: nsd/nsd.conf + dest: '{{nsd_conf}}' +- name: Ensure zone dir exists + file: + path: '{{zone_dir}}' + owner: '{{zone_owner}}' + group: '{{zone_group}}' + state: directory +- name: Install zone files + template: + src: 'zones/{{item}}' + dest: '{{zone_dir}}/{{item}}.zone' + validate: 'nsd-checkzone {{item}} %s' + owner: '{{zone_owner}}' + group: '{{zone_group}}' + mode: 0640 + loop: "{{nsd_zones}}" + notify: + - Restart NSD +- name: 'runit: create service directory' + file: + state: directory + path: /etc/sv/nsd + mode: '0755' + when: use_runit +- name: 'runit: Install service command' + template: + src: nsd/run.j2 + dest: /etc/sv/nsd/run + mode: '755' + when: use_runit +- name: 'runit: Install supervise symlink' + file: + state: link + force: yes + src: /run/supervise.nsd + dest: /etc/sv/nsd/supervise + follow: false + when: use_runit +- name: 'runit: Enable NSD' + file: + src: /etc/sv/nsd + dest: /var/service/nsd + owner: root + group: root + state: link + when: use_runit +- name: Enable NSD + service: + name: nsd + state: started + enabled: true + when: 'not use_runit' diff --git a/tasks/openbsd.yml b/tasks/openbsd.yml deleted file mode 100644 index 0d3e613..0000000 --- a/tasks/openbsd.yml +++ /dev/null @@ -1,22 +0,0 @@ ---- -- name: 'Install nsd.conf' - template: - src: openbsd_nsd.conf - dest: /var/nsd/etc/nsd.conf - notify: - - Restart NSD -- name: Install zone files - template: - src: 'zones/{{item}}' - dest: '/var/nsd/zones/master/{{item}}.zone' - validate: 'nsd-checkzone {{item}} %s' - owner: root - group: wheel - mode: 0644 - loop: "{{nsd_zones}}" - notify: - - Restart NSD -- name: Enable nsd - service: - name: nsd - enabled: yes |
