2016-03-26 17:54:31 +01:00
|
|
|
NSD role
|
|
|
|
|
|
|
|
It is assumed that all machines host the exact same zones in the same way
|
|
|
|
(i.e. for each zone, they are either all masters, or all slaves).
|
|
|
|
This greatly simplifies configuration, and there is generally no need
|
|
|
|
to have masters and slaves for the same zone handled by Ansible, since
|
|
|
|
Ansible can just push the zone to all machines (so, they can all be masters).
|
|
|
|
|
|
|
|
There are cases where having multiple masters whose zone is pushed by Ansible
|
|
|
|
is not desirable:
|
|
|
|
|
|
|
|
- dynamic DNS records (which isn't supported by NSD anyway)
|
|
|
|
- DNSSEC (you could always generate DNSSEC signatures in ansible, but it's awkward)
|
|
|
|
|
|
|
|
|
|
|
|
You can put key-value pairs in group_vars, under the key "nsd_common_config",
|
|
|
|
they will be used for the NSD configuration on all hosts.
|
|
|
|
A few common configuration entries are in the playbook itself, because they are
|
|
|
|
needed to properly create relevant directories.
|
|
|
|
|
|
|
|
Some machine-specific configuration is also possible, e.g. for the bind IP.
|
|
|
|
Put key-value pairs in host_vars, under the key "nsd_local_config".
|
|
|
|
|
|
|
|
If you want to pass multiple values for a key (e.g. ip-address), just use
|
|
|
|
a list as value, it will automatically be expanded.
|
|
|
|
|
2016-03-26 17:56:34 +01:00
|
|
|
The zones are configured in group_vars, see the example. The zone files
|
|
|
|
themselves for primary zones should be put in files/nsd.
|
2016-03-26 17:54:31 +01:00
|
|
|
|
|
|
|
The playbook is currently only tested with Debian wheezy.
|
|
|
|
|
|
|
|
When a master zone is updated, the slaves are notified. Obviously, the slaves
|
|
|
|
need to be configured to accept notification from at least one master and pull
|
|
|
|
zones accordingly.
|