dnsmasq

ansible-role-dnsmasq

Универсальная роль для настройки dnsmasq, созданная с использованием этой философии: https://github.com/jriguera/ansible-role-pattern/blob/master/README.md

Эта роль поддерживает определение различных интерфейсов для разных целей (dns, tftp ...) и множество параметров dnsmasq. Также она может управлять файлом resolv.conf.

Работает с Ansible 2.0 на Ubuntu Trusty, Xenial и CentOS 7.

Настройка

Параметры конфигурации по умолчанию:

dnsmasq_enabled_on_startup: True
# Управление resolvconf
dnsmasq_resolvconf: False

# Установка из репозиториев или прямо из пакетов операционной системы
dnsmasq_os_packages: True

# Глобальные параметры, обязательные для настройки! иначе будут игнорироваться!
dnsmasq_dhcp: True
dnsmasq_tftp: True

### resolv.conf
#dnsmasq_host_domain: local
#dnsmasq_host_search: local
dnsmasq_host_resolvers: [ "127.0.0.1" ]

# Установите устройство, на которое dnsmasq будет отправлять записи syslog, по умолчанию
# DAEMON, и на LOCAL0, когда включен режим отладки. Если указанное
# устройство содержит хотя бы один '/' символ, оно воспринимается как имя файла,
# и dnsmasq будет записывать в указанный файл, вместо syslog. Если указано '-',
# то dnsmasq будет записывать в stderr.
dnsmasq_conf_log: /var/log/dnsmasq.log

# Включить асинхронную запись и, при желании, установить лимит на количество
# строк, которые будут помещены в очередь dnsmasq, когда запись в syslog медленная.
#dnsmasq_conf_log_async:
dnsmasq_conf_log_dns: False

# Список IP или интерфейсов для прослушивания (пустой список для всех)
dnsmasq_conf_listen: []

# На системах, которые это поддерживают, dnsmasq привязывает адрес wildcard,
# даже когда он прослушивает только некоторые интерфейсы. Он затем отбрасывает
# запросы, на которые не должен отвечать. Это имеет преимущество в том,
# что работает даже когда интерфейсы приходят и уходят и меняют адреса.
dnsmasq_conf_bind_interfaces: 'dynamic'


### DNS
# Принимать DNS-запросы только от хостов, чей адрес находится на локальной подсети,
# т.е. подсети, для которой на сервере существует интерфейс.
#dnsmasq_conf_local_service: True

# Никогда не пересылать простые имена (без точки или части домена)
dnsmasq_conf_domain_needed: True

# Включить код для обнаружения циклов пересылки DNS; т.е. ситуацию, когда запрос,
# отправленный на один из вышестоящих серверов, в конечном итоге возвращается
# как новый запрос к экземпляру dnsmasq.
#dnsmasq_conf_dns_loop_detect: True

# Все обратные поиска для частных IP диапазонов (т.е. 192.168.x.x и др.), которые
# не найдены в /etc/hosts или файле DHCP-аренды, отвечают "нет такого домена"
# вместо пересылки вверх. Никогда не пересылать адреса в не маршрутизируемых
# адресных пространствах.
dnsmasq_conf_bogus_priv: True

# Если вы не хотите, чтобы dnsmasq читал /etc/hosts, раскомментируйте
# следующую строку.
dnsmasq_conf_no_hosts: False

# Дополнительный файл хостов, формат /etc/hosts (это список!)
#dnsmasq_conf_hosts:
# - ["127.0.0.1", "localhost"]
# - ["::1", "ip6-localhost", "ip6-loopback"]
# - ["fe00::0", "ip6-localnet"]
# - ["ff00::0", "ip6-mcastprefix"]
# - ["ff02::1", "ip6-allnodes"]
# - ["ff02::2", "ip6-allrouters"]
# - ["192.168.1.10", "foo.mydomain.org", "foo" ]
dnsmasq_conf_hosts: []

# Установите размер кэша памяти dns здесь.
cache-size: 1024

# Отключить негативное кэширование. Негативное кэширование позволяет dnsmasq запоминать
# ответы "нет такого домена" от вышестоящих серверов имен и отвечать на одинаковые
# запросы без повторной пересылки.
# Негативные ответы от вышестоящих серверов обычно содержат информацию о
# времени жизни в записях SOA, которую dnsmasq использует для кэширования. Если этот параметр
# не определен: "no-negcache".
dnsmasq_conf_negcache: 5

# Этот флаг заставляет dnsmasq обрабатывать каждый запрос с каждым сервером строго
# в том порядке, в котором они указаны в /etc/resolv.conf
dnsmasq_conf_strict_order: False

# Этот флаг заставляет dnsmasq отправлять все запросы всем доступным серверам.
# Ответ от сервера, который ответит первым, будет возвращен первичному запросу.
dnsmasq_conf_all_servers: False

# Если вы хотите, чтобы dnsmasq читал "/etc/resolv.conf" или любой другой файл.
# Пустое или не определенное для отключения чтения resolv.conf
dnsmasq_conf_resolv: /etc/resolv.conf

# Не проверять /etc/resolv.conf на изменения.
dnsmasq_conf_no_poll: False

# Если dnsmasq_conf_no_poll равно False, тогда /etc/resolv.conf будет перечитан или
# вышестоящие серверы будут установлены через DBus, очистите DNS кэш.
dnsmasq_conf_clear_on_reload: True

# Укажите IP адрес вышестоящих серверов напрямую. Установка этого флага не
# отключает чтение /etc/resolv.conf: ['localnet', '192.168.0.1']
# Пример маршрутизации PTR запросов к серверам имен: это будет отправить все:
# address->name запросы для 192.168.3/24 к серверу имен 10.1.2.3
# ['3.168.192.in-addr.arpa', '10.1.2.3']
#dnsmasq_conf_servers:
#  - [ "/google.com/", "8.8.8.8" ]
#  - "8.8.4.4"
dnsmasq_conf_servers: [ "8.8.8.8", "8.8.4.4" ]

# Вернуть MX запись, указывающую на себя для всех локальных машин: '_self'
# MX запись, указывающая на сервер dnsmasq для всех локальных машин: '_local' или ''
# MX запись, указывающая на "servername" для всех локальных машин: 'servername'
# Вернуть MX запись с именем "maildomain.com" с целью
# "servername" и предпочтением 50: [maildomain.com, servername, 50]
#dnsmasq_conf_mx: servername
#dnsmasq_conf_mx_domain: {{ hostvars['k4.ww.mens.de'].
#dnsmasq_conf_mx_pref: 1

# Добавить записи A, AAAA и PTR к DNS. Это добавляет одно или более имен к DNS
# с соответствующими записями IPv4 (A) и IPv6 (AAAA)
#dnsmasq_conf_host_records:
#  -[]

# Определить DNS зону, для которой dnsmasq является авторитетным сервером.
#dnsmasq_conf_auth_zone: []


### DHCP

# Записывать много дополнительной информации о DHCP-транзакциях.
dnsmasq_conf_log_dhcp: False

# Установите домен для dnsmasq. это необязательно, но если он установлен, он
# делает следующее.
# 1) Позволяет DHCP-узлам иметь полностью квалифицированные доменные имена, если
#     часть домена соответствует этой настройке.
# 2) Устанавливает опцию DHCP "domain", тем самым потенциально устанавливая
#    домен для всех систем, настроенных по DHCP
# 3) Предоставляет часть домена для "expand-hosts"
# Если домен задан как "#", то домен читается из первой
# директивы "search" в /etc/resolv.conf
dnsmasq_conf_domain: '#'

# Только если dnsmasq_conf_domain задан, неквалифицированное имя больше не помещается
# в DNS, только квалифицированное имя.
dnsmasq_conf_dhcp_fqdn: True

# Должен быть установлен, когда dnsmasq является единственным DHCP сервером в сети.
dnsmasq_conf_dhcp_authoritative: True

# Dnsmasq предназначен для выбора IP-адресов для DHCP-клиентов с использованием хеша
# MAC-адреса клиента.
dnsmasq_conf_dhcp_sequential_ip: True

# Отключить повторное использование полей имени сервера DHCP и имени файла в качестве дополнительного пространства для опций.
dnsmasq_conf_dhcp_no_override: True

# Раскомментируйте это, чтобы включить интегрированный DHCP сервер, вам нужно
# указать диапазон адресов, доступных для аренды, и, возможно, время аренды. Если у вас
# больше одной сети, вам нужно будет повторить это для каждой сети
# на которой вы хотите предоставить DHCP сервис.
#dnsmasq_conf_dhcp: []
#dnsmasq_conf_dhcp:
#   - device: eth0:
#     range: [192.168.1.80, 192.168.1.150, бесконечно]
#     option: []
#     ignore_names: True
#     generate_names: True
#     boot: []
#     tftp: /var/lib/tftpboot

# Чтение информации о DHCP-хостах из списка или из указанного локального файла
#dnsmasq_conf_dhcp_hosts: []

# Полностью отключить использование файла базы данных аренды. Файл не будет
# создан, прочитан или записан.
dnsmasq_conf_dhcp_leasefile_ro: False

# Всякий раз, когда создается новая аренда DHCP, или старая уничтожается, или
# завершен перенос файла TFTP, выполняется указанный этой опцией исполняемый файл.
#dnsmasq_conf_dhcp_script: files/program.bin


### TFTP

# Включить безопасный режим TFTP: без этого введённый файл, который доступен
# для процесса dnsmasq по обычным правилам доступа unix, будет доступен через TFTP
dnsmasq_conf_tftp_secure: False

# Преобразовать имена файлов в запросах TFTP в нижний регистр. Это полезно для
# запросов от Windows-машин
dnsmasq_conf_tftp_lowercase: True

# Установить максимальное количество одновременно разрешенных TFTP соединений
dnsmasq_conf_tftp_max: 50

# Остановить TFTP сервер от ведения переговоров о "размере блока" с клиентом
dnsmasq_conf_tftp_no_blocksize: False

Вы можете переопределить эти параметры по умолчанию как переменные роли. Посмотрите пример в site.yml с vagrant и протестируйте его, используя vagrant up.

Помимо управления dnsmasq, эта роль способна управлять файлом /etc/resolv.conf, определив параметры dnsmasq_resolvconf: true и dnsmasq_host_*.

Автор

Хосе Ригера Лопес jriguera@gmail.com

О проекте

Install and setup Dnsmasq server on RedHat/Debian based distributions

Установить
ansible-galaxy install jriguera/ansible-role-dnsmasq
Лицензия
Unknown
Загрузки
704
Владелец