ansible-role-bind/README.md

107 lines
2.8 KiB
Markdown

# Ansible role: Bind
[![Version](https://img.shields.io/badge/latest_version-1.2.1-green.svg)](https://github.com/nishiki/ansible-role-bind/releases)
[![Build Status](https://travis-ci.org/nishiki/ansible-role-bind.svg?branch=master)](https://travis-ci.org/nishiki/ansible-role-bind)
[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](https://github.com/nishiki/ansible-role-bind/blob/master/LICENSE)
Install and configure bind with dnssec
## Requirements
* bind version >= 9.8
## Official support OS
* Debian
* stretch
* jessie
This role can work on Debian derived OS, but it's not our priority.
## Role variables
* `bind_role` - the role `master` or `slave`, don't generate dnssec key on `slave`
* `bind_options` - hash general bind options
* `bind_zones` - the dns zones
* `bind_zones_subset` array to use in `extra-vars` with the list zones to update
* `bind_listen_ipv4` - enable or disable ip v4 support (default: true)
* `bind_listen_ipv6` - enable or disable ip v6 support (default: true)
## How to use
* `host_vars/dns-master`
```
bind_role: master
```
* `host_vars/dns-slave`
```
bind_role: slave
```
* `group_vars/dns-server`
```
bind_listen_ipv6: true
bind_listen_ipv4: true
bind_options:
server-id: '"1"'
bind_zones:
test.local:
ns_primary: ns1.test.local
mail: root@test.local
serial: 2017092202
dnssec: yes
options:
key-directory: '"/etc/bind/keys"'
auto-dnssec: maintain
inline-signing: yes
records:
- { name: '@', type: ns, value: localhost. }
- { name: hello, type: a, ttl: 5m, value: 1.2.3.4 }
- { name: hello, type: caa, flag: 0, tag: issue, value: letsencrypt.org }
- { name: hello, type: srv, priority: 0, weight: 5, port: 80, value: www }
hello.local:
ns_primary: ns1.hello.local
mail: root@hello.local
serial: 2017092201
dnssec: no
state: disabled
records:
- { name: '@', type: ns, value: localhost. }
- { name: hello, type: a, value: 4.3.2.1 }
```
* playbook
```
- hosts: dns-server
roles:
- bind
```
## Development
### Tests with docker
* install [docker](https://docs.docker.com/engine/installation/)
* install ruby
* install bundler `gem install bundler`
* install dependencies `bundle install`
* run the tests `kitchen test`
## License
```
Copyright (c) 2017 Adrien Waksberg
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```