marcinpraczko.named

Szybkie informacje

Ta rola jest forkiem następującego repozytorium:

Powody stworzenia tego forka i dokonania w nim poprawek:

  • Named jest nadal używany, więc miło byłoby mieć działającą rolę.
  • Rola ma ładną strukturę i elastyczność w kwestii konfiguracji.
  • Ta rola nie działała od razu i niektóre problemy nie zostały rozwiązane od 2015 roku.

Ansible-role-named

Wersja: 0.1.4

  • Wymaga Ansible 2.0+
  • Kompatybilna z większością wersji RHEL/CentOS 6.x, 7.x, Debian i Ubuntu

Instalacja

Bezpośrednio z ansible-galaxy (najnowsze wydanie)

$ ansible-galaxy install marcinpraczko.named

Bezpośrednio z repozytorium github

Czasami wprowadzane są zmiany w gałęzi develop lub feature, które nie zostały jeszcze wydane. Ansible-galaxy pozwala na instalację ról bezpośrednio z GitHub.

mkdir testing-roles
cd testing-roles
ansible-galaxy install -p roles git+https://github.com/marcinpraczko/ansible-role-named.git,develop

Powyższy przykład zainstaluje gałąź develop. Można to dostosować do dowolnego commit SHA, tagu lub nazwy gałęzi, w zależności od wymagań.

Sprawdzenie, jaka wersja jest zainstalowana, można wykonać poleceniem:

ansible-galaxy list -p roles

Rozpoczęcie pracy

Instalacja BIND (named)

Instalacja BIND (named) oraz wszystkich wymaganych zależności jest bardzo prosta i można ją wykonać przed konfiguracją lub osobno:

Tylko instalacja

$ ansible-playbook -t install -i hosts named.yml

Uruchomienie całego Playbooka

$ ansible-playbook -i hosts named.yml

Przykładowy Playbook, Hosty i Zmienne grupowe

Przykładowy Playbook

- name: "Działania potrzebne do uzyskania szczęśliwego stanu głównych serwerów"
  hosts: named_masters
  remote_user: root

  roles:
    - "marcinpraczko.named"

- name: "Działania potrzebne do uzyskania szczęśliwego stanu serwerów podrzędnych"
  hosts: named_slaves
  remote_user: root

  roles:
    - "marcinpraczko.named"

Przykładowe Hosty

[named_masters]
127.0.0.1

#[named_slaves]
#127.0.0.1

Przykładowe Zmienne Grupowe

named_masters:

named_acls:
  public_slaves:
    - 8.8.8.8
    - 9.9.9.9
  private_slaves:
    - 192.168.25.5
    - 192.168.25.6

named_zones:
# Zauważ '_', to sprawia, że Ansible jest zadowolony i zostanie później zastąpione 
# w konfiguracji i strefach automatycznie
  foo_com:
    type: master
    allow_transfer:
      - public_slaves
    ttl: 3000

named_slaves:

named_zones_create_masters: False 

named_zones:
# Zauważ '_', to sprawia, że Ansible jest zadowolony i zostanie później zastąpione 
# w konfiguracji i strefach automatycznie
  foo_com:
    type: slave
    master:
      - 7.7.7.7

Ta rola składa się z zadań instalacyjnych i konfiguracyjnych, które są oznaczone jako install lub configure i mogą być uruchamiane pojedynczo lub razem. Ta rola ma akcje umożliwiające stworzenie pliku named.conf oraz pliku included.conf, które będą przechowywać acls i dołączanie stref, a także dynamiczne pliki strefowe w oparciu o domyślne lub grupowe zmienne.

Możliwości konfiguracyjne

Jest kilka opcji konfiguracyjnych w tej roli, oto podsumowana lista domyślnych ustawień (aktualna lista znajduje się w defaults/main.yml):

## Opcje instalacji
named_conf_file_location: /etc/named.conf

# Upewnij się, że te są poprawne dla twojego systemu
named_user: named
named_group: named
named_service_name: named

# Ustawienia specyficzne dla Monit
named_monit_enable: False
named_monit_service_name: monit
named_monit_conf_directory: /etc/monit.d
named_pid_file: /var/run/named/named.pid
named_service_file: /etc/init.d/named

## Podstawowe opcje konfiguracyjne

# Sekcja Opcji
named_conf_listen_on_port: 53
named_conf_listen_on_interface:
  - 127.0.0.1
named_conf_listen_on_v6_port: 53
named_conf_listen_on_v6_interface:
  - ::1
named_conf_notify: "no"
named_conf_forwarders:
  - 7.7.7.7
  - 7.7.8.8
named_conf_directory: /var/named
named_conf_dump_file: /var/named/data/cache_dump.db
named_conf_statistics_file: /var/named/data/named_stats.txt
named_conf_memstatistics_file: /var/named/data/named_mem_stats.txt
named_conf_allow_query:
  - any
#named_conf_allow_transfer: none
named_conf_recursion: no
named_conf_dnssec_enable: yes
named_conf_dnssec_validation: yes
named_conf_dnssec_lookaside: auto
named_conf_bindkeys_file: /etc/named.iscdlv.key
named_conf_managed_keys_directory: /var/named/dynamic

# Sekcja logowania
named_conf_logging_channel: default_debug
named_conf_logging_file_directory: /var/log/named
named_conf_logging_file: named.log
named_conf_logging_severity: info
named_conf_logging_print_severity: yes
named_conf_logging_print_time: yes
named_conf_logging_print_category: yes
named_conf_logging_category_name: default
named_conf_logging_categories:
  - default_debug

named_conf_includes_directory: /etc/named

### Brak domyślnych acls lub includes

## Ustawienia główne
# To ustawienie określa, czy pliki strefowe powinny być tworzone w zadeklarowanym
# katalogu głównym. Normalnie nie chcesz ich tworzyć, jeśli konfigurujesz hosta podrzędnego.
named_zones_create_masters: True

### Domyślne ustawienia strefy
named_conf_zone_ttl: 21600
named_conf_zone_soa: foo.com. noc.foo.com.
named_conf_zone_refresh: 21600
named_conf_zone_retry: 600
named_conf_zone_expire: 86400
named_conf_zone_expire_min: 3000

Zauważ, że możesz określić domyślne zmienne do tworzenia dynamicznych plików strefy, co pozwala znacznie zmniejszyć liczbę plików group_var, ponieważ można określić tylko nadpisania dla stref, które wymagają ustawień różniących się od domyślnych.

Fakty

Następujące fakty są dostępne w twoim inwentarzu lub poza tą rolą.

  • {{ ansible_local.named.interfaces_ipv4 }}
  • {{ ansible_local.named.interfaces_ipv6 }}
  • {{ ansible_local.named.port_ipv4 }}
  • {{ ansible_local.named.port_ipv6 }}

Testowanie

  • Początkowo rola miała tylko plik travis.
  • Dodano konfigurację molecule, aby umożliwić testowanie tej roli lokalnie.

Molecule pozwala na testowanie ról ansible lokalnie za pomocą docker lub vagrant. Pomaga również w przeprowadzaniu weryfikacji, takich jak serverspec lub testinfra.

To wszystko sprawia, że testowanie tej roli jest znacznie łatwiejsze.

Instalacja wymaganych pakietów

  • Docker
  • Vagrant

Instalacja molecule

  • Zainstaluj wirtualne środowisko Pythona na swoim systemie.
  • Zainstaluj molecule w wirtualnym środowisku Pythona.
virtualenv venv
source venv/bin/activate

# Zaktualizuj powszechnie używane pakiety pip
pip install -U pip setuptools wheel

# Zainstaluj molecule z wymaganymi pakietami Pythona
pip install -r tests/requirements.txt

Testowanie przy użyciu molecule

Poniższe polecenie powinno umożliwić przetestowanie roli przy użyciu sterownika Vagrant.

Uwaga: Uruchomienie poniższego polecenia po raz pierwszy zajmie więcej czasu (należy pobrać pełny obraz Vagrant na lokalny host).

molecule test --sudo

Powyższe polecenie uruchomi --sudo tylko dla narzędzi weryfikacyjnych, takich jak testinfra lub serverspec, itp. Opcja --sudo nie ma wpływu na to, jak działa ansible.

O projekcie

A highly configurable role for BIND (named) versions >9

Zainstaluj
ansible-galaxy install marcinpraczko.named
Licencja
gpl-2.0
Pobrania
75
Właściciel