/ansible-role-bind

Bind role for Ansible

Primary LanguageJinja

Build Status

Ansible Bind Role

An ansible role for installing and managing bind, acting as primary and/or secondary nameserver. It does also copy the master zone files (bind_masterzones_path), but however, the zone files must exist in the local machine (bind_masterzones_local_path).

Configuration:

Define where your zones files are stored in the server:

  bind_masterzones_path: path/to/zones_dir

Define where your zones files are stored in the ansible controller machine:

  bind_masterzones_local_path: path/to/zones/local/dir/

Configure the domains of the zones for a bind act as primary nameserver:

  bind_config_master_zones:
    - name: example.com
    - name: example2.com
    - name: example3.com

Optionally: If your zone should be synced with secondary nameservers, define the IPs of those:

  bind_config_master_allow_transfer:
    - 127.0.0.1
    - 127.0.0.2

Optionally: If your nameservers acts as a secondary nameserver, here is a sample setup:

  bind_config_slave_zones:
    - name: example.net
      masters: [ '127.1.0.1', '127.1.0.2' ]
      zones:
        - example.net
        - example.org

Optionally: If you need to forward some zones directly to another nameserver, here is a sample:

bind_config_forward_zones:
  - name: domains forwarded to 127.1.0.x nameservers
    forwarders: [ '127.1.0.1', '127.1.0.2' ]
    forward: only
    zones:
      - forwarded.example.net
      - forwarded.example.org

forward should be either first or only

Optionally: If you want to adjust the allow-query option globally, here is a sample:

bind_config_allow_query: [ '127.1.0.1', '127.1.0.2' ]

Optionally: You can enable logging (this creates one file per channel):

bind_logging_enabled: on

Optionally: You can configure log files size, versions, logging severity and path: bind_logging_path: /var/log/named bind_logging_file_versions: 3 bind_logging_file_size: 5m bind_logging_severity: dynamic

Dependencies

None.

Example Playbook

---
- hosts: nameservers
  remote_user: root
  roles:
     - { role: resmo.bind }

License

MIT

Author Information

René Moser mail@renemoser.net

Logging configuration borrowed from Steven Carr from a StackOverflow's answer.