unbound

Ansible-Role-Unbound

Статус сборки Ansible Galaxy

Высоко настраиваемая роль Ansible для DNS-резольвера Unbound

  • Ansible 2.2+
  • Совместимо с системами, которые используют systemd в качестве системы инициализации. Последние версии Ubuntu/Debian, RHEL/CentOS 6.x и freeBSD

Содержание

  1. Установка
  2. Примеры и распространенные сценарии использования
  3. Требования
  4. Переменные роли
  5. Зависимости
  6. Пример плейбука
  7. Тестирование
    1. с помощью molecule
    2. с помощью скрипта geerlingguy

Установка

$ ansible-galaxy install publicarray.unbound

Примеры и распространенные сценарии использования

Пожалуйста, смотрите вики: Примеры

Зависимости

Ansible 2.2+

Требования

нет

Переменные роли

Вот список переменных по умолчанию для этой роли. Они также доступны в defaults/main.yml. Рекомендуем скопировать и вставить переменные ниже в ваш файл group_vars/all/configs и ознакомиться с документацией unbound: https://unbound.net/documentation/unbound.conf.html

---
# Компилировать unbound из исходников или использовать пакетный менеджер.
unbound_compile: false
# Версия unbound для загрузки исходников <https://nlnetlabs.nl/projects/unbound/download/>
unbound_compile_version: 1.8.0
# Контрольная сумма для сравнения загруженного файла <https://nlnetlabs.nl/projects/unbound/download/>
unbound_compile_sha256: 78f79d6d3b643fdcd74a14fc76542250da886c82f82bc55b51e189663d61b83f
# Аргументы, передаваемые команде `./configure`.
unbound_compile_config: "--enable-dnscrypt --with-username={{unbound.server.username|default(unbound)}} --with-libevent --with-run-dir={{unbound.server.directory}} --with-conf-file={{unbound.server.directory}}/unbound.conf"

# Использовать рекомендации по оптимизации из <http://unbound.nlnetlabs.nl/documentation/howto_optimise.html>
unbound_optimise: false
# Процент физической памяти, который будет использован для unbound. Используется только когда `unbound_optimise` истинно
unbound_optimise_memory: 100

## Настройки DNS-over-TLS
# см. <https://github.com/publicarray/ansible-role-unbound/wiki/Examples#dns-over-tls> для примера
unbound_tls_domain: example.com
# Метод генерации сертификатов. Должен быть одним из: selfsigned или acme.
unbound_tls_cert_provider: selfsigned
# Дополнительные команды. https://github.com/Neilpang/acme.sh/wiki/Options-and-Params
unbound_tls_acme_custom:

# Основная конфигурация unbound
unbound:
  server:
    verbosity: 1
    logfile: unbound.log
    auto_trust_anchor_file: root.key
    root_hints: root.hints
    pidfile: "{{_unbound.pidfile|default('unbound.pid')}}"
    username: "{{_unbound.user}}"
    directory: "{{_unbound.conf_dir if unbound_compile == false else \"/usr/local/etc/unbound\"}}"
    chroot: "{{_unbound.conf_dir if unbound_compile == false else \"/usr/local/etc/unbound\"}}"

Зависимости

нет

Пример плейбука

---
- hosts: all
  roles:
    - { role: publicarray.unbound }
  vars:
    - unbound_optimise: true
$ ansible-playbook -i dns.example.com, playbook.yml

Тестирование

с помощью molecule

Требует python 2.7 и docker

virtualenv --no-setuptools venv
source venv/bin/activate
pip install docker-py molecule
molecule test # --debug - для подробного вывода
deactivate

с помощью скрипта geerlingguy

  1. Установите и запустите Docker.
  2. Скачайте тестовый скрипт в tests/test.sh: - wget -O tests/test.sh https://gist.githubusercontent.com/geerlingguy/73ef1e5ee45d8694570f334be385e181/raw/
  3. Сделайте тестовый скрипт исполняемым: chmod +x tests/test.sh.
  4. Запустите (из корневого каталога роли) distro=[дистрибутив] playbook=[плейбук] ./tests/test.sh.

Кредиты за тестовый скрипт принадлежать @geerlingguy

Дистрибутивы:

  • centos7
  • ubuntu1604
  • ubuntu1404
  • debian9
  • debian8

Плейбуки находятся в каталоге tests

  • test.yml Тестирует конфигурацию по умолчанию
  • compile-test.yml Тестирует компиляцию unbound
  • package-test.yml Тестирует dns-over-dns и оптимизированную конфигурацию

Пример в bash/sh:

$ distro=debian9 playbook=package-test.yml cleanup=false container_id=$(date +%s) ./tests/test.sh

Пример в fish shell:

$ set -x distro debian9; set -x playbook package-test.yml; set -x cleanup false; set -x container_id (date +%s); ./tests/test.sh

Лицензия

MIT/BSD

Информация об авторе

@publicarray

О проекте

Unbound - Validating, recursive, and caching DNS resolver

Установить
ansible-galaxy install publicarray/ansible-role-unbound
Лицензия
mit
Загрузки
70
Владелец