robertdebock.dns

Rôle Ansible dns

Installez et configurez dns sur votre système.

GitHub GitLab Téléchargements Version
github gitlab downloads Version

Exemple de Playbook

Cet exemple est tiré de molecule/default/converge.yml et est testé à chaque push, pull request et release.

---
- name: Converger
  hosts: tous
  become: vrai
  gather_facts: vrai

  roles:
    - role: robertdebock.dns
      dns_allow_transfer:
        - none
        - "127.0.0.1"
      dns_zones:
        - name: localhost
          type: primaire
          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: primaire
          records:
            - name: "@"
              type: NS
              value: localhost.
            - name: "1.0.0"
              type: PTR
              value: localhost.
        - name: "0.in-addr.arpa"
          type: primaire
          records:
            - name: "@"
              type: NS
              value: localhost.

        - name: "255.in-addr.arpa"
          type: primaire
          records:
            - name: "@"
              type: NS
              value: localhost.
        - name: example.com
          type: primaire
          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: secondaire
          primaries:
            - "127.0.0.1"
            - "127.0.0.2"
        - name: lab.controlplane.info
          type: primaire
          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"

La machine doit être préparée. Dans CI, cela se fait en utilisant molecule/default/prepare.yml:

---
- name: Préparer
  hosts: tous
  become: vrai
  gather_facts: faux

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

Voir également une explication complète et un exemple sur comment utiliser ces rôles.

Variables de rôle

Les valeurs par défaut pour les variables sont définies dans defaults/main.yml:

---
# fichier par défaut pour dns

# Le port à écouter.
dns_port: 53

# Le serveur DNS doit-il être un serveur DNS de mise en cache ?
dns_caching_dns: vrai

# Une liste de zones et propriétés par zone.
dns_zones:
  - name: localhost
    type: primaire
    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: primaire
    records:
      - name: "@"
        type: NS
        value: localhost.
      - name: "1.0.0"
        type: PTR
        value: localhost.
  - name: "0.in-addr.arpa"
    type: primaire
    records:
      - name: "@"
        type: NS
        value: localhost.
  - name: "255.in-addr.arpa"
    type: primaire
    records:
      - name: "@"
        type: NS
        value: localhost.

# Une liste optionnelle de ACL pour autoriser la récursion. ("any" et "none" sont toujours disponibles.)
dns_allow_recursion:
  - none

# Une liste optionnelle d'IPv4 sur laquelle le serveur DNS écoute. ("any" et "none" sont toujours disponibles.)
dns_listen_on:
  - any

# Une liste optionnelle d'IPv6 sur laquelle le serveur DNS écoutera. ("any" et "none" sont toujours disponibles.)
dns_listen_on_v6:
  - any

# Une liste optionnelle d'IP autorisées à interroger le serveur. ("any" et "none" sont toujours disponibles.)
# Par défaut : "any"
# dns_allow_query:
#  - any
#  - "127.0.0.1"

# Une liste optionnelle d'IP autorisées à exécuter une requête AXFR. ("any" et "none" sont toujours disponibles.)
# Par défaut : "none"
# dns_allow_transfer:
#   - none
#   - "172.16.0.1"

# Un paramètre optionnel pour configurer le chemin où le fichier pid sera créé.
dns_pid_file: /run/named/named.pid

# Un paramètre optionnel pour transférer le trafic vers d'autres serveurs DNS.
# dns_forwarders:
#   - "1.1.1.1"
#   - "8.8.8.8"

Exigences

État des rôles utilisés

Les rôles suivants sont utilisés pour préparer un système. Vous pouvez préparer votre système d'une autre manière.

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

Contexte

Ce rôle fait partie de nombreux rôles compatibles. Consultez la documentation de ces rôles pour plus d'informations.

Voici un aperçu des rôles associés : dépendances

Compatibilité

Ce rôle a été testé sur ces images de conteneur:

conteneur tags
Alpine tous
Amazon Candidate
EL 9
Debian tous
Fedora tous
Ubuntu tous

La version minimale d'Ansible requise est 2.12, des tests ont été effectués sur :

  • La version précédente.
  • La version actuelle.
  • La version de développement.

Si vous trouvez des problèmes, veuillez les enregistrer sur GitHub.

Licence

Apache-2.0.

Informations sur l'auteur

robertdebock

Veuillez envisager de me soutenir.

À propos du projet

Install and configure dns on your system.

Installer
ansible-galaxy install robertdebock.dns
Licence
apache-2.0
Téléchargements
1.2k
Propriétaire
I know my way around (Linux) infrastructure, have a passion for automation, Docker, Ansible, Molecule and ci/cd.