robertdebock.dns

Ansible-Rolle DNS

Installieren und konfigurieren Sie DNS auf Ihrem System.

GitHub GitLab Downloads Version
github gitlab downloads Version

Beispiel-Playbook

Dieses Beispiel stammt aus molecule/default/converge.yml und wird bei jeder Push-, Pull-Request- und Release-Aktion getestet.

---
- name: Konvergenz
  hosts: all
  become: true
  gather_facts: true

  roles:
    - role: robertdebock.dns
      dns_allow_transfer:
        - none
        - "127.0.0.1"
      dns_zones:
        - name: localhost
          type: primary
          soa: localhost
          serial: 1
          refresh: 604800
          retry: 86400
          expire: 2419200
          ttl: 604800
          records:
            - name: "@"
              type: NS
              value: localhost.
            - name: "@"
              value: "127.0.0.1"
            - name: "@"
              type: AAAA
              value: "::1"
        - name: "127.in-addr.arpa"
          ttl: 604800
          type: primary
          records:
            - name: "@"
              type: NS
              value: localhost.
            - name: "1.0.0"
              type: PTR
              value: localhost.
        - name: "0.in-addr.arpa"
          type: primary
          records:
            - name: "@"
              type: NS
              value: localhost.
        - name: "255.in-addr.arpa"
          type: primary
          records:
            - name: "@"
              type: NS
              value: localhost.
        - name: example.com
          type: primary
          ttl: 604800
          ns:
            - name: dns1.example.com.
            - name: dns2.example.com.
          mx:
            - name: mail1.example.com.
              priority: 10
            - name: mail2.example.com.
              priority: 20
          records:
            - name: dns1
              value: "127.0.0.1"
            - name: dns2
              value: "127.0.0.1"
            - name: www
              value: "127.0.0.1"
            - name: dns1
              value: "127.0.0.1"
            - name: dns2
              value: "127.0.0.1"
            - name: mail1
              value: "127.0.0.1"
            - name: mail2
              value: "127.0.0.1"
        - name: forwarded.example.com
          type: forward
          forwarders:
            - "1.1.1.1"
            - "8.8.8.8"
        - name: secondary.example.com
          type: secondary
          primaries:
            - "127.0.0.1"
            - "127.0.0.2"
        - name: lab.controlplane.info
          type: primary
          ttl: 600
          ns:
            - name: ns.lab.controlplane.info.
          mx:
            - name: mail1.lab.controlplane.info.
              priority: 10
            - name: mail2.lab.controlplane.info.
              priority: 20
          records:
            - name: ns
              value: "192.168.254.27"
            - name: git
              value: "192.168.254.19"
            - name: dl380
              value: "192.168.254.27"
            - name: mail1
              value: "192.168.123.123"
            - name: mail2
              value: "192.168.123.123"
        - name: forwarded.lab.controlplane.info
          type: forward
          ns:
            - name: forwarded.lab.controlplane.info.
          records:
            - name: ns
              value: "192.168.254.27"
            - name: "@"
              value: "192.168.123.123"
          forwarders:
            - "9.9.9.9"
            - "8.8.8.8"

Der Server muss vorbereitet werden. In CI geschieht dies mit molecule/default/prepare.yml:

---
- name: Vorbereiten
  hosts: all
  become: true
  gather_facts: false

  roles:
    - role: robertdebock.bootstrap
    - role: robertdebock.core_dependencies

Siehe auch eine vollständige Erklärung und Beispiel, wie man diese Rollen verwendet.

Rollenvariablen

Die Standardwerte für die Variablen sind in defaults/main.yml festgelegt:

---
# Standarddatei für DNS

# Der Port, auf dem zugehört werden soll.
dns_port: 53

# Soll der DNS-Server ein cachender DNS-Server sein?
dns_caching_dns: true

# Eine Liste von Zonen und Eigenschaften pro Zone.
dns_zones:
  - name: localhost
    type: primary
    soa: localhost
    serial: 1
    refresh: 604800
    retry: 86400
    expire: 2419200
    ttl: 604800
    records:
      - name: "@"
        type: NS
        value: localhost.
      - name: "@"
        value: "127.0.0.1"
      - name: "@"
        type: AAAA
        value: "::1"
  - name: "127.in-addr.arpa"
    ttl: 604800
    type: primary
    records:
      - name: "@"
        type: NS
        value: localhost.
      - name: "1.0.0"
        type: PTR
        value: localhost.
  - name: "0.in-addr.arpa"
    type: primary
    records:
      - name: "@"
        type: NS
        value: localhost.
  - name: "255.in-addr.arpa"
    type: primary
    records:
      - name: "@"
        type: NS
        value: localhost.

# Eine optionale Liste von ACLs, um Rekursion zu erlauben. ("any" und "none" sind immer verfügbar.)
dns_allow_recursion:
  - none

# Eine optionale Liste von IPv4, auf denen der DNS-Server hören wird. ("any" und "none" sind immer verfügbar.)
dns_listen_on:
  - any

# Eine optionale Liste von IPv6, auf denen der DNS-Server hören wird. ("any" und "none" sind immer verfügbar.)
dns_listen_on_v6:
  - any

# Eine optionale Liste von IPs, die erlaubt sind, den Server abzufragen. ("any" und "none" sind immer verfügbar.)
# Standard: "any"
# dns_allow_query:
#  - any
#  - "127.0.0.1"

# Eine optionale Liste von IP, die berechtigt sind, eine AXFR-Abfrage auszuführen. ("any" und "none" sind immer verfügbar.)
# Standard: "none"
# dns_allow_transfer:
#   - none
#   - "172.16.0.1"

# Eine optionale Einstellung, um den Pfad zu konfigurieren, unter dem die PID-Datei erstellt wird.
dns_pid_file: /run/named/named.pid

# Eine optionale Einstellung, um den Datenverkehr an andere DNS-Server weiterzuleiten.
# dns_forwarders:
#   - "1.1.1.1"
#   - "8.8.8.8"

Anforderungen

Zustand der verwendeten Rollen

Die folgenden Rollen werden verwendet, um ein System vorzubereiten. Sie können Ihr System auch auf andere Weise vorbereiten.

Anforderung GitHub GitLab
robertdebock.bootstrap Build Status GitHub Build Status GitLab
robertdebock.core_dependencies Build Status GitHub Build Status GitLab

Kontext

Diese Rolle ist Teil vieler kompatibler Rollen. Schauen Sie sich die Dokumentation dieser Rollen für weitere Informationen an.

Hier ist eine Übersicht über verwandte Rollen: dependencies

Kompatibilität

Diese Rolle wurde auf diesen Container-Images getestet:

Container Tags
Alpine alle
Amazon Kandidat
EL 9
Debian alle
Fedora alle
Ubuntu alle

Die Mindestversion von Ansible, die benötigt wird, ist 2.12. Tests wurden mit folgenden Versionen durchgeführt:

  • Der vorherigen Version.
  • Der aktuellen Version.
  • Der Entwicklungsversion.

Wenn Sie Probleme finden, melden Sie diese bitte auf GitHub.

Lizenz

Apache-2.0.

Autoreninformationen

robertdebock

Bitte ziehen Sie in Betracht, mich zu unterstützen.

Über das Projekt

Install and configure dns on your system.

Installieren
ansible-galaxy install robertdebock.dns
Lizenz
apache-2.0
Downloads
1.2k
Besitzer
I know my way around (Linux) infrastructure, have a passion for automation, Docker, Ansible, Molecule and ci/cd.