diff options
Diffstat (limited to 'roles/nsd')
-rw-r--r-- | roles/nsd/README.md | 63 | ||||
-rw-r--r-- | roles/nsd/defaults/main.yml | 1 | ||||
-rw-r--r-- | roles/nsd/vars/main.yml | 2 |
3 files changed, 64 insertions, 2 deletions
diff --git a/roles/nsd/README.md b/roles/nsd/README.md new file mode 100644 index 0000000..eacbe2e --- /dev/null +++ b/roles/nsd/README.md @@ -0,0 +1,63 @@ +NSD +=== + +Description +----------- + +The `nsd` role installs the `nsd` authoritative nameserver and generates zone +files. + +Variables +--------- + +This role **accepts** the following variables: + +Variable | Default | Description +-------------------|---------------------------------|------------ +`nsd_server_count` | `{{ ansible_processor_vcpus }}` | Number of server threads to run +`nsd_zones` | `[]` | DNS zones to serve (see [format](#nsd_zones) below) +`nsd_default_ttl` | 10800 | Default record TTL (seconds) + +### nsd\_zones + +The `nsd_zones` variable is used to configure authoritative DNS zones to serve. +It should contain a list of dictionaries of the following format: + +Key | Default | Description +--------------------|-------------------------|------------ +`name` | | DNS zone +`slave_nameservers` | `[]` | List of hosts to send notifies and allow zone transfers +`ttl` | `{{ nsd_default_ttl }}` | Default TTL for this zone +`content` | | Raw zone file content + +Usage +----- + +Example playbook: + +````yaml +- hosts: authoritative_nameservers + roles: + - role: nsd + vars: + nsd_zones: + - name: example.com + slave_nameservers: + - 203.0.113.50 + - 203.0.113.51 + ttl: 3600 + content: | + @ IN NS ns1.example.com. + @ IN NS ns2.example.com. + ns1 IN A 203.0.113.52 + ns1 IN AAAA 2001:db8::2 + ns2 IN A 203.0.113.53 + ns2 IN AAAA 2001:db8::3 + + @ IN MX 10 mx1.example.com. + @ IN TXT "v=spf1 mx -all" + + @ IN A 203.0.113.54 + www1 IN A 203.0.113.54 + mx1 IN A 203.0.113.55 +```` diff --git a/roles/nsd/defaults/main.yml b/roles/nsd/defaults/main.yml index de4f06d..9735652 100644 --- a/roles/nsd/defaults/main.yml +++ b/roles/nsd/defaults/main.yml @@ -1,2 +1,3 @@ nsd_server_count: '{{ ansible_processor_vcpus }}' nsd_zones: [] +nsd_default_ttl: 10800 diff --git a/roles/nsd/vars/main.yml b/roles/nsd/vars/main.yml index 78b1ba6..0f3f709 100644 --- a/roles/nsd/vars/main.yml +++ b/roles/nsd/vars/main.yml @@ -1,7 +1,5 @@ nsd_init_serial: 10000 -nsd_default_ttl: 10800 - nsd_soa_block: | $TTL {{ zone.ttl | default(nsd_default_ttl) }} $ORIGIN {{ zone.name }}. |