bind
#######################################################################################################
:exclamation: УСТАРЕВШИЙ :exclamation:
Этот репозиторий и связанная с ним роль устарели в пользу Коллекции Ansible Manala
Вы найдете информацию о его использовании в репозитории коллекции
#######################################################################################################
Ansible Роль: Bind
:exclamation: Сообщайте о проблемах и отправляйте Pull Requests в главный репозиторий ролей Ansible :exclamation:
Эта роль отвечает за настройку Bind.
Она является частью стека Manala Ansible, но может использоваться как самостоятельный компонент.
Требования
Нет.
Зависимости
Нет.
Установка
Ansible 2+
С использованием команды ansible galaxy:
ansible-galaxy install manala.bind
С использованием файла зависимостей ansible galaxy:
- src: manala.bind
Фильтры ролей
Имя | Описание |
---|---|
manala_bind_zone_file |
Стандартизация имен файлов зон |
Переменные роли
Имя | По умолчанию | Тип | Описание |
---|---|---|---|
manala_bind_install_packages |
~ | Массив | Пакеты зависимостей для установки |
manala_bind_install_packages_default |
['bind9'] | Массив | Пакеты зависимостей по умолчанию |
manala_bind_user |
'bind' | Строка | Пользователь |
manala_bind_group |
'bind' | Строка | Группа |
manala_bind_options |
['-u {{ manala_bind_user }}'] | Массив | Опции |
manala_bind_log_dir |
'/var/log/bind' | Строка | Директория логов |
manala_bind_configs |
[] | Массив | Список конфигурационных файлов |
manala_bind_configs_dir |
'/etc/bind' | Строка | Директория конфигурационных файлов |
manala_bind_zones_dir |
'/var/cache/bind' | Строка | Директория файлов зон |
manala_bind_zones |
[] | Массив | Список файлов зон |
Пример конфигурации
Опции
Смотрите: https://linux.die.net/man/8/named
manala_bind_options:
- -u {{ manala_bind_user }}
- -4 # Только IPv4
Конфигурации
Путь к file
относителен параметру manala_bind_configs_dir
.
Содержимое конфигураций можно указать как jinja2 template
или как сырой content
.
Элементы конфигураций также поддерживают параметр state
(present|absent) и параметр omit
(false|true).
manala_bind_configs:
- file: named.conf.options
template: bind/configs/named.conf.options.j2
- file: named.conf.local
content: |
// Рассмотрите возможность добавления зон 1918 здесь, если они не используются в вашей
// организации
include "{{ manala_bind_configs_dir }}/zones.rfc1918";
- file: named.conf.foo
state: absent
- file: named.conf.bar
omit: true
Зоны - Статические
Параметр zone
или file
является обязательным. Если не указаны, параметр file
будет вычислен из zone
.
Путь file
относителен параметру manala_bind_zones_dir
.
Содержимое конфигураций можно указать как jinja2 template
или как сырой content
.
Элементы конфигурации также поддерживают параметр state
(present|absent) и параметр omit
(false|true).
manala_bind_zones:
- zone: foo.local
template: bind/zones/db.foo.local.j2
- zone: bar.local
content: |
@ IN SOA ns.bar.local. contact.bar.local. (
1 ; серийный номер
604800 ; обновление (1 неделя)
86400 ; повторная попытка (1 день)
2419200 ; истечение (4 недели)
86400 ; минимум (1 день)
)
@ IN NS ns.bar.local.
ns IN A 172.16.1.1;
- zone: baz.local
state: absent
- zone: qux.local
omit: true
Зоны - Динамические
Параметр zone
является обязательным, а параметр dynamic
должен быть установлен в true.
Конфигурация зоны должна позволять обновление (по крайней мере) с локального хоста.
Учитывая динамическую природу файла зоны, параметры content
или template
учитываются только тогда, когда файл еще не существует. Это можно рассматривать как начальную настройку зоны.
manala_bind_configs:
- file: named.conf.local
content: |
zone "foo.local" {
type master;
file "{{ 'foo.local'|manala_bind_zone_file }}";
allow-update { localhost; };
};
manala_bind_zones:
- zone: foo.local
dynamic: true
content: |
@ IN SOA ns.foo.local. contact.foo.local. (
1 ; серийный номер
604800 ; обновление (1 неделя)
86400 ; повторная попытка (1 день)
2419200 ; истечение (4 недели)
86400 ; минимум (1 день)
)
@ IN NS ns.foo.local.
ns IN A 172.16.1.1;
records:
- { record: bar, value: 172.16.1.123 }
Пример плейбука
- hosts: servers
roles:
- { role: manala.bind }
Лицензия
MIT
Информация об авторе
Manala (http://www.manala.io/)
ansible-galaxy install manala/ansible-role-bind