PowerDNS.dnsdist

Rola Ansible: dnsdist

Status budowy Licencja Rola Ansible Tag na GitHubie

Rola Ansible stworzona przez zespół PowerDNS do skonfigurowania dnsdist.

Wymagania

Instalacja Ansible w wersji 2.9 lub wyższej.

Zależności

Brak.

Zmienne roli

Dostępne zmienne są wymienione poniżej wraz z wartościami domyślnymi (patrz defaults/main.yml):

dnsdist_install_repo: ""

Domyślnie, dnsdist jest instalowany z repozytoriów oprogramowania skonfigurowanych na docelowych hostach.

# Instalacja dnsdist z gałęzi master
- hosts: dnsdist
  roles:
  - { role: PowerDNS.dnsdist,
      dnsdist_install_repo: "{{ dnsdist_powerdns_repo_master }}"

# Instalacja dnsdist 1.3.x
- hosts: dnsdist
  roles:
  - { role: PowerDNS.dnsdist,
      dnsdist_install_repo: "{{ dnsdist_powerdns_repo_13 }}"

Powyższe przykłady pokazują, jak zainstalować DNSdist z oficjalnych repositoriów PowerDNS (zobacz pełną listę zdefiniowanych repozytoriów w vars/main.yml).

- hosts: all
  vars:
    dnsdist_install_repo:
      name: "dnsdist" # nazwa repozytorium
      apt_repo_origin: "example.com"  # używane do przypinania dnsdist do podanego repozytorium
      apt_repo: "deb http://example.com/{{ ansible_distribution | lower }} {{ ansible_distribution_release | lower }}/dnsdist main"
      gpg_key: "http://example.com/MYREPOGPGPUBKEY.asc" # publiczny klucz GPG repozytorium
      gpg_key_id: "MYREPOGPGPUBKEYID" # aby uniknąć ponownego importowania klucza przy każdym uruchomieniu roli
      yum_repo_baseurl: "http://example.com/centos/$basearch/$releasever/dnsdist"
      yum_debug_symbols_repo_baseurl: "http://example.com/centos/$basearch/$releasever/dnsdist/debug"
  roles:
  - { role: PowerDNS.dnsdist }

Można również zainstalować dnsdist z własnych repozytoriów, jak pokazano w powyższym przykładzie.

dnsdist_install_epel: True

Domyślnie, zainstaluj EPEL, aby zaspokoić niektóre zależności DNSdist, takie jak lidsodium. Aby pominąć instalację EPEL, ustaw zmienną dnsdist_install_epel na False.

dnsdist_package_name: "{{ default_dnsdist_package_name }}"

Nazwa pakietu dnsdist: "dnsdist" w zarówno dystrybucjach RHEL, jak i Debian.

dnsdist_package_version: ""

Opcjonalnie, pozwala na ustawienie konkretnej wersji pakietu dnsdist do zainstalowania.

dnsdist_install_debug_symbols_package: False

Instaluj pakiet symboli debugowania dnsdist.

dnsdist_debug_symbols_package_name: "{{ default_dnsdist_debug_symbols_package_name }}"

Nazwa pakietu symboli debugowania dnsdist do zainstalowania, gdy dnsdist_install_debug_symbols_package jest ustawione na True.

dnsdist_acls: []

Konfiguruje ACLS dnsdist (maski sieciowe).

dnsdist_locals: ['127.0.0.1:5300']

Konfiguruje adresy wsłuchujące dnsdist.

dnsdist_servers:
  - '127.0.0.1'
  - "{ address='127.0.0.1:5300', source='127.0.0.1@lo', order=1 }"

Lista adresów IP serwerów DNS, do których dnsdist powinien wysyłać ruch, lub tabel Lua, które funkcja newServer (https://dnsdist.org/reference/config.html#newServer) może przetwarzać.

dnsdist_carbonserver: ""

Adres IP serwera Carbon, który powinien odbierać metryki dnsdist.

dnsdist_controlsocket: "127.0.0.1"

Adres IP, na którym nasłuchuje kontrolny gniazdo TCP dnsdist.

dnsdist_setkey: ""

Klucz szyfrowania dla kontrolnego gniazda TCP dnsdist. Jeśli jest pusty, zostanie wygenerowany losowy klucz. Jeśli klucz już istnieje w pliku, zostanie zachowany.

dnsdist_webserver_address: ""

Adres IP, na którym nasłuchuje wbudowany serwer WWW, pusty w celu wyłączenia domyślnie.

dnsdist_webserver_password: ""

Dane uwierzytelniające do wbudowanego serwera WWW. Muszą być ustawione, gdy dnsdist_webserver_address jest ustawione.

dnsdist_webserver_apikey: ""

Dane uwierzytelniające do wbudowanego API.

dnsdist_webserver_acl: ""

Od wersji 1.5.0, domyślnie tylko połączenia z 127.0.0.1 i ::1 są dozwolone. Zobacz https://dnsdist.org/guides/webserver.html po więcej informacji.

dnsdist_config: ""

Dodatkowa konfiguracja dnsdist, która ma być umieszczona bez zmian w pliku dnsdist.conf.

dnsdist_config_owner: 'root'
dnsdist_config_group: 'root'

Użytkownik i grupa, które są właścicielami pliku dnsdist.conf.

dnsdist_service_overrides: {}

Słownik z nadpisaniami dla usługi (tylko systemd). Można go użyć do zmiany dowolnych ustawień systemd w kategorii [Service].

dnsdist_unit_overrides: {}

Słownik z nadpisaniami dla jednostki usługi (tylko systemd). Można go użyć do zmiany dowolnych ustawień systemd w kategorii [Unit].

dnsdist_environment_overrides: {}

Słownik z nadpisaniami dla środowisk usługi (tylko systemd). Można go użyć do zmiany dowolnych zmiennych środowiskowych w ustawieniach systemd w kategorii [Service].

dnsdist_service_state: "started"
dnsdist_service_enabled: "yes"

Pozwala określić pożądany stan usługi DNSdist. Np. pozwala zainstalować i skonfigurować DNSdist bez automatycznego uruchamiania usługi.

dnsdist_disable_handlers: False

Wyłącz automatyczne ponowne uruchamianie usługi przy zmianach w konfiguracji.

dnsdist_tlslocals: []

Konfiguruje słuchawki DNS over TLS. Wpisy są kopiowane dokładnie jeden po drugim.

dnsdist_force_reinstall: False

Wymusza ponowną instalację pakietów dnsdist, usuwając je przed etapami instalacji. Przeznaczone do użycia, gdy potrzebna jest degradacja dnsdist.

Przykład Playbooka

Zainstaluj dnsdist przed Quad9 i włącz interfejs monitorowania sieci

- hosts: dnsdist
  roles:
    - { role: PowerDNS.dnsdist,
        dnsdist_servers: ['9.9.9.9'],
        dnsdist_webserver_address: "{{ ansible_default_ipv4['address'] }}:8083",
        dnsdist_webserver_password: 'geheim' }

Dziennik zmian

Szczegółowy dziennik zmian roli jest dostępny tutaj.

Testowanie

Testy są przeprowadzane przez Molecule.

$ pip install tox

Aby przetestować wszystkie scenariusze, uruchom

$ tox

Aby uruchomić niestandardowe polecenie Molecule

$ tox -e ansible29 -- molecule test -s dnsdist-18

Licencja

MIT

O projekcie

Dnsdist is a highly scriptable and DDoS aware DNS loadbalancer

Zainstaluj
ansible-galaxy install PowerDNS.dnsdist
Licencja
mit
Pobrania
22.7k
Właściciel