https://github.com/tleguern/ansible-role-nsd
Ansible role for the nsd daemon
https://github.com/tleguern/ansible-role-nsd
ansible ansible-role dns nsd
Last synced: 5 months ago
JSON representation
Ansible role for the nsd daemon
- Host: GitHub
- URL: https://github.com/tleguern/ansible-role-nsd
- Owner: tleguern
- License: isc
- Created: 2020-02-18T19:26:42.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2025-03-03T14:03:59.000Z (over 1 year ago)
- Last Synced: 2025-03-03T14:37:16.144Z (over 1 year ago)
- Topics: ansible, ansible-role, dns, nsd
- Language: Jinja
- Size: 13.7 KB
- Stars: 0
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ansible Role: nsd
An Ansible role that installs and configures nsd and also manages zone files.
## Requirements
None.
## Role Variables
| Variable | Description | Default |
|----------|-------------|---------|
| `nsd_user` | User name of `nsd` | `{{ __nsd_user }}` |
| `nsd_group` | Group name of `nsd` | `{{ __nsd_group }}` |
| `nsd_service` | Service name of `nsd` | `{{ __nsd_service }}` |
| `nsd_package` | Package name of `nsd` | `{{ __nsd_package }}` |
| `nsd_conf_dir` | Path to directory where `nsd.conf` resides | `{{ __nsd_conf_dir }}` |
| `nsd_zones_dir` | Path to directory where zone files reside | `{{ __nsd_zones_dir }}` |
| `nsd_db_dir` | Path to directory where `nsd` database file reside | `{{ __nsd_db_dir }}` |
| `nsd_conf_file` | Path to `nsd.conf` | `{{ nsd_conf_dir }}/nsd.conf` |
| `nsd_bin` | Path to `nsd-checkconf` | `{{ __nsd_bin }}` |
| `nsd_sock` | Path to `nsd` remote-control socket | `{{ __nsd_sock }}` |
| `nsd_logfile` | Path to `nsd` log | `{{ __nsd_logfile }}` |
| `nsd_flags` | Addtional flags to `nsd` daemon | "" |
| `nsd_zones_inputdir` | Local path to directory where your zone files reside | "" |
| `nsd_role` | Either `standalone`, `master` or `slave` | `standalone` |
| `nsd_zone` | A list of zones | see below |
| `nsd_keys` | A list of keys for AXFR | see below |
| `nsd_listens` | Optionally bind to a list of IP addresses | `[]` |
### `nsd_zone`
This variable is a list of dict of zone files this role will handle.
| Variable | Description | Mandatory? |
|----------|-------------|---------|
| name | Zone name | yes |
| state | Either `absent` or `present` | no |
| key | Key to use if `nsd_role` is not `standalone` | depends |
### `nsd_keys`
This variable is a list of dict describing keys for `nsd`.
It is mandatory to declare a `nsd_keys` list if `nsd_role` is not `standalone`.
| Variable | Description | Mandatory? |
|----------|-------------|---------|
| name | Key name | yes |
| algorithm | Key algorithm | no, default to `hmac-sha256` |
| secret | Key content | yes |
### Debian
| Variable | Default |
|----------|---------|
| `__nsd_user` | `nsd` |
| `__nsd_group` | `nsd` |
| `__nsd_service` | `nsd` |
| `__nsd_package` | `nsd` |
| `__nsd_conf_dir` | `/etc/nsd` |
| `__nsd_zones_dir` | `/var/lib/nsd/zones` |
| `__nsd_db_dir` | `/var/lib/nsd` |
| `__nsd_bin` | `/usr/sbin/nsd-checkconf` |
| `__nsd_sock` | `127.0.0.1` |
### OpenBSD
| Variable | Default |
|----------|---------|
| `__nsd_user` | `_nsd` |
| `__nsd_group` | `_nsd` |
| `__nsd_service` | `nsd` |
| `__nsd_package` | "" |
| `__nsd_conf_dir` | `/var/nsd/etc` |
| `__nsd_zones_dir` | `/var/nsd/zones` |
| `__nsd_db_dir` | `/var/nsd/db` |
| `__nsd_bin` | `/usr/sbin/nsd-checkconf` |
| `__nsd_sock` | `/var/run/nsd.sock` |
## Dependencies
None.
## Example Playbooks
```
$ ls zones/
example.org example.com bogus.domain
```
```
- hosts: ns
roles:
- role: ansible-role-nsd
nsd_listens: [ "{{ ansible_default_ipv4.address }}" ]
nsd_zones_inputdir: zones/
nsd_zones:
- name: example.org
- name: example.com
- name: bogus.domain
state: absent
```
## License
ISC