aalaesar.manage-bind

Ansible Роль: manage-bind 2.0

Эта роль создана как абстракция для настройки bind и создания зон DNS с использованием синтаксиса YAML.

  • Установите и управляйте вашим сервером bind9 на серверах Debian/Ubuntu.
  • Используйте синтаксис/файлы YAML для настройки параметров Bind, зон и др.

Требования

Ansible 2.4+

Примечание: эта роль требует root-доступа к серверу bind.

playbook.yml:

- hosts: dnsserver
  roles:
    - role: aalaesar.manage-bind
      become: yes

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

# конфигурация хоста
bind_user:  bind
bind_group: bind
host_dns_srv: self
# директория для логов
bind_log_dir: /var/log/bind
# Конфигурация установки
bind_pkg_state: present
bind_pkgs: ['bind9', 'dnsutils']
bind_service_state: started
bind_service_enabled: yes
# Конфигурации
bind_configs_dir: /etc/bind
bind_config_master_zones: []
bind_config_default_zones: 'yes'
RFC1918: no
# Файлы зон
bind_zones_dir: /var/lib/bind
# Настройки по умолчанию для зон
zones_config_ttl: 38400 #10ч45м
zones_config_refresh: 10800 #3ч
zones_config_retry: 3600 #1ч
zones_config_expire: 604800 #1н
zones_config_minimum: 38400 #10ч45м

# Удалять неуправляемые файлы для чистоты сервера
remove_unmanaged_files: true
# Инициализировать список управляемых файлов зон:
list_zone_files: []

Конфигурация Bind

Введение в конфигурацию Bind

Bind использует механизм наследования заявлений, чтобы разрешить точную настройку.

  • клауза — это класс со своим набором заявлений.
    • Они могут иметь специфические или общие утверждения.
    • Клауза, определенная внутри другой, будет неявно наследовать общие утверждения своей «матери».
  • заявление — это свойство клаузы.
    • Оно описывает поведение сервера, как выполнять задачу, когда и т. д.
    • Оно может быть явно или неявно определено.

Варианты и утверждения роли

  • Роль manage-bind поддерживает следующие клаузу:
    • options
    • zone
    • key

Список поддерживаемых заявлений: Смотрите ./vars/main.yml

ВНИМАНИЕ: При определении заявления!

  • Некоторые заявления имеют сложные сопоставления, в то время как другим требуется лишь простое значение. У каждого заявления есть свой шаблон, который сам документирован.
  • manage-bind использует утилиты Bind named-checkconf и named-checkzone для настройки и проверки зон. Однако эти инструменты ограничены проверкой синтаксиса и легкой согласованности. Эта роль не предоставляет продвинутых методов проверки.
  • Экранируйте специальные символы, такие как @, с помощью кавычек.
  • Некоторые заявления требуют строковых значений "yes|no": экранируйте yes и no с помощью кавычек, так как Ansible рассматривает их как булевы значения.

... (дальнейшая часть текста следует аналогичной структуре, описывающей другие функции и настройки).

Примеры Плейбуков

Пример конфигурации:

  • У вас есть зоны example.tld, example.com и example.org.
  • У вас есть 2 DNS-сервера: dnserver1 (11.22.33.44) и dnserver2 (55.66.77.88).
  • dnserver1 - мастер для example.tld и слейв для example.com.
  • dnserver2 - мастер для example.com и слейв для example.tld.
  • example.tld динамически заполняется DHCP-сервером.

Плейбук для dnserver1:

---
- hosts: dnserver1
  roles:
    - role: aalaesar.manage-bind
      options:
        allow_recursion: '55.66.77.88'
        allow_transfer: '55.66.77.88'
      zones:
        example.tld:
          type: master
          force_file: no
          notify: '55.66.77.88'
          allow_update:
            - key dhcp_updater
          records:
            - SOA:
                serial: 2016080401
                ns: dnserver1.example.tld.
                email: admin.example.tld.
            - NS:
              - dnserver1.example.tld.
              - dnserver2.example.tld.
            - A:
                dnserver1: 11.22.33.44
                dnserver2: 55.66.77.88
        example.com:
          type: slave
          masters: '55.66.77.88'
      keys:
      - name: dhcp_updater
        algorithm: "hmac-md5"
        secret: "{{myvault_dhcp_key}}"

(здесь может быть добавлен остальной текст в том же духе).

Лицензия

BSD

О проекте

Use YAML syntax/files to configure Bind (options, zones data, etc) from Ansible. (Also install and manage the bind9 server on Debian/Ubuntu servers).

Установить
ansible-galaxy install aalaesar.manage-bind
Лицензия
Unknown
Загрузки
568
Владелец
Yet another DevOps. I just want things to become easier and faster, ... and understand how it works ! That's a lot of work ...