aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--roles/nsd/README.md63
-rw-r--r--roles/nsd/defaults/main.yml1
-rw-r--r--roles/nsd/vars/main.yml2
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 }}.