marcinpraczko.named

Schnelle Informationen

Diese Rolle ist ein Fork des folgenden Repositories:

Gründe für die Erstellung dieses Forks und dessen Anpassung:

  • Named wird weiterhin verwendet und es wäre schön, eine funktionierende Rolle zu haben.
  • Die Rolle hat eine gute Struktur und ist flexibel in Bezug auf die Konfiguration.
  • Diese Rolle funktionierte nicht sofort und einige Probleme wurden seit 2015 nicht behoben.

Ansible-Rolle-named

Version: 0.1.4

  • Benötigt Ansible 2.0+
  • Kompatibel mit den meisten Versionen von RHEL/CentOS 6.x, 7.x, Debian und Ubuntu

Installation

Direkt von ansible-galaxy (aktuelle Version)

$ ansible-galaxy install marcinpraczko.named

Direkt aus dem Github-Repository

Gelegentlich wurden Änderungen am develop- oder feature-Branch vorgenommen, die noch nicht veröffentlicht wurden. Ansible-galaxy erlaubt die Installation von Rollen direkt von GitHub.

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

Obiger Befehl installiert den develop-Branch. Dies kann auf jeden Git SHA-Commit, Tag oder Branch-Namen angepasst werden – je nach Anforderungen.

Um zu überprüfen, welche Version installiert ist, kann der folgende Befehl verwendet werden:

ansible-galaxy list -p roles

Erste Schritte

Installation von BIND (named)

Die Installation von BIND (named) und aller erforderlichen Abhängigkeiten ist sehr einfach und kann vor der Konfiguration oder individuell durchgeführt werden:

Nur installieren

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

Gesamtes Playbook ausführen

$ ansible-playbook -i hosts named.yml

Beispiel-Playbook, Hosts und Gruppenvariablen

Beispiel-Playbook

- name: "Aktionen, die notwendig sind, um die Master in einen guten Zustand zu bringen"
  hosts: named_masters
  remote_user: root

  roles:
    - "marcinpraczko.named"

- name: "Aktionen, die notwendig sind, um die Slaves in einen guten Zustand zu bringen"
  hosts: named_slaves
  remote_user: root

  roles:
    - "marcinpraczko.named"

Beispiel-Hosts

[named_masters]
127.0.0.1

#[named_slaves]
#127.0.0.1

Beispiel-Gruppenvariablen

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:
# Beachten Sie das _ hier, das macht ansible glücklich und wird später in der Konfiguration 
# und den Zonen automatisch ersetzt
  foo_com:
    type: master
    allow_transfer:
      - public_slaves
    ttl: 3000

named_slaves:

named_zones_create_masters: False 

named_zones:
# Beachten Sie das _ hier, das macht ansible glücklich und wird später in der Konfiguration 
# und den Zonen automatisch ersetzt
  foo_com:
    type: slave
    master:
      - 7.7.7.7

Diese Rolle besteht aus Installations- und Konfigurationsaufgaben, die entweder mit install oder configure gekennzeichnet sind und individuell oder alle zusammen ausgeführt werden können. Diese Rolle enthält Aktionen zur Erstellung einer named.conf-Datei und einer included.conf-Datei, die ACLs und Zonen-Includes enthalten, sowie dynamische Zonendateien basierend auf Standard- oder Gruppenvariablen.

Konfigurierbare Optionen

Es gibt einige konfigurierbare Optionen in dieser Rolle, hier ist eine zusammengefasste Liste der Standardwerte (eine aktuelle Liste finden Sie in defaults/main.yml):

## Installationsoptionen
named_conf_file_location: /etc/named.conf

# Stellen Sie sicher, dass diese für Ihr OS korrekt sind
named_user: named
named_group: named
named_service_name: named

# Monit-spezifische Einstellungen
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

## Basis-Konfigurationsoptionen

# Optionen Abschnitt
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

# Logging Abschnitt
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

### Keine Standard-ACLs oder Includes

## Master-Einstellungen
# Diese Einstellung bestimmt, ob Zonendateien im deklarierten 
# Master-Verzeichnis erstellt werden sollen. Normalerweise möchte man dies nicht tun, 
# wenn man einen Slave-Host konfiguriert.
named_zones_create_masters: True

### Zonenkonfigurationsstandard
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

Beachten Sie, dass Sie Standardvariablen für die Erstellung dynamischer Zonendateien angeben können, dies ermöglicht stark reduzierte group_var-Dateien, da Sie nur Überschreibungen für Zonen angeben müssen, die außerhalb der Standards Einstellungen benötigen.

Fakten

Die folgenden Fakten sind in Ihrem Inventar oder außerhalb dieser Rolle zugänglich.

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

Tests

  • Ursprünglich hatte die Rolle nur die travis-Datei.
  • Fügten die molecule-Konfiguration hinzu, um diese Rolle lokal zu testen.

Molecule ermöglicht das Testen von Ansible-Rollen lokal mit docker oder vagrant. Es hilft auch, Validierungen wie serverspec oder testinfra durchzuführen.

All dies macht das Testen dieser Rolle viel einfacher.

Benötigte Pakete installieren

  • Docker
  • Vagrant

Molecule installieren

  • Installieren Sie die Python-virtuelle Umgebung auf Ihrem System.
  • Installieren Sie molecule in der Python-virtuellen Umgebung.
virtualenv venv
source venv/bin/activate

# Gemeinsame pip-Pakete aktualisieren
pip install -U pip setuptools wheel

# Molecule mit benötigten Python-Paketen installieren
pip install -r tests/requirements.txt

Testen mit Molecule

Der folgende Befehl sollte es ermöglichen, die Rolle mit dem Vagrant-Treiber zu testen.

HINWEIS: Der erste Ausführung dieser Befehle dauert länger (Das vollständige Vagrant-Image muss auf den lokalen Host heruntergeladen werden).

molecule test --sudo

Obiger Befehl führt --sudo nur für die Verifikationstools aus, z. B. testinfra oder serverspec, usw. Diese --sudo-Option hat keine Auswirkungen darauf, wie Ansible ausgeführt wird.

Über das Projekt

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

Installieren
ansible-galaxy install marcinpraczko.named
Lizenz
gpl-2.0
Downloads
75
Besitzer