{"id":21605999,"url":"https://github.com/archf/ansible-bind","last_synced_at":"2025-03-18T14:41:20.929Z","repository":{"id":89974995,"uuid":"48257358","full_name":"archf/ansible-bind","owner":"archf","description":"An Ansible role to configure a multi-machine BIND cluster for multiple domains.","archived":false,"fork":false,"pushed_at":"2015-12-22T20:27:46.000Z","size":17,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-24T19:16:50.736Z","etag":null,"topics":["ansible","bind9","dns","role"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/archf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-12-18T21:30:28.000Z","updated_at":"2021-05-17T20:54:06.000Z","dependencies_parsed_at":"2023-03-16T02:17:16.362Z","dependency_job_id":null,"html_url":"https://github.com/archf/ansible-bind","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archf%2Fansible-bind","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archf%2Fansible-bind/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archf%2Fansible-bind/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archf%2Fansible-bind/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/archf","download_url":"https://codeload.github.com/archf/ansible-bind/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244242889,"owners_count":20421959,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","bind9","dns","role"],"created_at":"2024-11-24T20:18:30.765Z","updated_at":"2025-03-18T14:41:20.908Z","avatar_url":"https://github.com/archf.png","language":"Ruby","readme":"# ansible-bind\n\nAn Ansible role to configure a multi-machine BIND cluster for multiple domains.\n\nThis role will:\n\n- install bind packages\n- install more bind packages if you intend to run bind in a chroot\n- template named.conf on each node\n- validate locally each forward and reverse zone file before copying them on each node\n- start and enable the service\n\n## Requirements\n\nOnly RHEL or CentOS 6/7\n\nThe required filter_plugin to generate a reverse zone for could be embedded in\nansible 2.0. Meanwhile, you will need a copy of the `filter_plugins` directory\ninside the `playbook_dir` or wherever you point it inside `ansible.cfg`\n\nNOTE:\n\n## Role Variables\n\nDefault variables:\n\n```yaml\nbind_packages:\n  - bind.x86_64\n  - bind-utils.x86_64\n\n# do not update bind to latest unless explictly stated\nbind_pkg_state: installed\n\n# bind is not installed in a chroot and selinux is used as recommendend\n# force to true if needed\nbind_chroot: false\nbind_service: named\n\n# recursion is turned off\nbind_options_recursion: no\n\n# default logging channel provided in package\nbind_logging_channels:\n  - channel_name: default_debug\n    file: 'data/named.run'\n    severity: dynamic\n```\n\n## Dependencies\n\nNone.\n\n## Example Playbook\n\nSee the vagrant setup inside the test directory.\n\nA simple playbook may look like this\n\n```yaml\n- hosts: bind_cluster\n  become: true\n    roles:\n        - bind\n```\n\nSee configuration example in tests/group_vars/*\n\n```bash\ntests/group_vars\n├── bind_cluster\n├── bindmasters\n└── bindslaves\n```\n\nTesting\n-------\n\nIn the `tests` directory there is:\n\n-   A `group_vars` directory to configure the cluster\n-   A Vagrantfile that will spin a cluster of 3 VM.\n-   A `test.yml` play that targets the bind_cluster groups\n\n**Hostname** | **ip** | group |\\\n        | :--- | :--- |\\\n`bind-m1` | 192.168.56.53 | bindmasters |\\\n`bind-m2` | 192.168.56.54 | bindslaves |\\\n`bind-m3` | 192.168.56.55 | bindslaves |\n\nThen `bind_cluster` group is a child group of `bindslaves` and `bindslaves`. All three machines will be provisionned in parallel.\n\nThose IP addresses are in the default VirtualBox Host Only network interface (192.168.56.0/24) subnet.\n\nYou can query them from your host. Install `vagrant-hostmanager` plugin to populate `/etc/hosts` of your host machine and query them via their hostname.\n\n```bash\n$ dig @192.168.56.54 machine1.example.org\n```\n\n## Contributing\n\nPR welcome!\n\n## Todo\n\n- template named.soa\n- activate selinux when not running inside chroot\n- A python script to parse all forward zones and generate all the reverse RR from them\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farchf%2Fansible-bind","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farchf%2Fansible-bind","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farchf%2Fansible-bind/lists"}