znerol.authns

Nom du rôle

Statut de la construction

Serveur de noms autoritatif BIND

Exigences

Aucune.

Variables du rôle

Ce rôle contient plusieurs fichiers de tâches. Le fichier de tâches principal n'importe que certains d'entre eux :

  1. bind-install.yml : Installe les paquets nécessaires sur le système.
  2. bind-config.yml : Prépare une configuration minimale pour un serveur DNS autoritatif non récursif.
  3. bind-service.yml : Configure le service BIND.

Les fichiers de tâches suivants contiennent des étapes pour configurer des zones / enregistrements de ressources et des clés de mise à jour DDNS.

  1. zone.yml : Configure des zones DNS avec des enregistrements SOA et NS et un ensemble initial d'enregistrements de ressources (rr).
  2. key.yml : Configure une clé pour les mises à jour DNS dynamiques.

Variables pour bind-install.yml

Aucune.

Variables pour bind-config.yml

Les variables dans cette section devraient, dans la plupart des cas, rester à leurs valeurs par défaut.

authns_main_config_owner: root
authns_main_config_group: root
authns_main_config_mode: 0644
authns_main_config_selevel: # omis par défaut
authns_main_config_serole: # omis par défaut
authns_main_config_setype: # omis par défaut
authns_main_config_seuser: # omis par défaut

authns_local_config_file: "{{ authns_bind_etc_path }}/named.conf.local"
authns_local_config_owner: root
authns_local_config_group: root
authns_local_config_mode: 0644
authns_local_config_selevel: # omis par défaut
authns_local_config_serole: # omis par défaut
authns_local_config_setype: # omis par défaut
authns_local_config_seuser: # omis par défaut

authns_options_config_file: "{{ authns_bind_etc_path }}/named.conf.options"
authns_options_config_owner: root
authns_options_config_group: root
authns_options_config_mode: 0644
authns_options_config_selevel: # omis par défaut
authns_options_config_serole: # omis par défaut
authns_options_config_setype: # omis par défaut
authns_options_config_seuser: # omis par défaut

Variables pour bind-service.yml

Aucune.

Variables pour zone.yml

Les variables suivantes sont requis lors de l'importation du fichier de tâches zone :

  • L'une des variables authns_zone_rr_content ou authns_zone_rr_src doit être définie. Utilisez la première pour fournir directement le contenu d'un fichier de zone et la seconde pour spécifier un fichier contenant les enregistrements. Ces variables sont référencées dans un appel au module copy, les documents s'appliquent donc également ici. Remarque : Il est tout à fait valide de définir authns_zone_rr_content sur une chaîne vide.

Lors de la configuration d'une nouvelle zone, les variables suivantes sont optionnelles :

  • authns_zone_name : Le nom de domaine de la zone. Par défaut, il correspond au domaine du nom d'hôte d'inventaire.
  • authns_zone_allow_update : Une liste de règles ACL définissant quelle combinaison d'IP/clé est autorisée à mettre à jour la zone dynamiquement. Utilisez la variable prédéfinie {{ authns_acl_require_localnets_and_update_key }} pour la règle ACL légèrement déroutante qui permet aux mises à jour dynamiques de réussir uniquement si la demande de MISE À JOUR provient d'une adresse dans les réseaux locaux et si elle est signée à l'aide de la clé de la variable authns_update_key_name. Voir Contrôle d'accès basé sur TSIG dans le Manuel de référence de l'administrateur Bind9.
  • authns_zone_db_ns : Utilisé pour l'enregistrement NS dans la zone, par défaut, cela correspond au nom d'hôte d'inventaire.
  • authns_zone_db_ns_ip4 et authns_zone_db_ns_ip6 : Utilisés pour les enregistrements A et AAAA pour le serveur de noms de la zone. Par défaut, cela correspond à l'IP du nom d'hôte d'inventaire si son domaine correspond à authns_zone_name.
  • Si authns_zone_dnssec est réglé sur true, un répertoire est créé avec le bon mode d'accès et la configuration DNSSEC est ajoutée à la configuration de la zone. Notez que cela ne génère pas de clés DNSSEC.

Les autres variables de cette section devraient rester à leurs valeurs par défaut dans la plupart des cas.

authns_zone_name: "{{ inventory_hostname.split('.')[1:]|join('.') }}"
authns_zone_allow_update: []

authns_zone_dnssec: false
authns_zone_dnssec_key_dir: "{{ authns_bind_etc_path }}/dnssec.{{ authns_zone_name }}"
authns_zone_dnssec_key_owner: root
authns_zone_dnssec_key_group: "{{ authns_os_bind_group }}"
authns_zone_dnssec_key_mode: 0750
authns_zone_dnssec_key_selevel: # omis par défaut
authns_zone_dnssec_key_serole: # omis par défaut
authns_zone_dnssec_key_setype: # omis par défaut
authns_zone_dnssec_key_seuser: # omis par défaut

authns_zone_config_file: "{{ authns_bind_etc_path }}/zones.{{ authns_zone_name }}"
authns_zone_config_owner: root
authns_zone_config_group: root
authns_zone_config_mode: 0644
authns_zone_config_selevel: # omis par défaut
authns_zone_config_serole: # omis par défaut
authns_zone_config_setype: # omis par défaut
authns_zone_config_seuser: # omis par défaut
authns_zone_db_file: "{{ authns_bind_db_path }}/db.{{ authns_zone_name }}"
authns_zone_db_owner: root
authns_zone_db_group: root
authns_zone_db_mode: 0644
authns_zone_db_selevel: # omis par défaut
authns_zone_db_serole: # omis par défaut
authns_zone_db_setype: # omis par défaut
authns_zone_db_seuser: # omis par défaut

authns_zone_db_ns: "{{ inventory_hostname }}"
authns_zone_db_hostmaster: "hostmaster.{{ authns_zone_name }}"
authns_zone_db_serial: 1
authns_zone_db_ttl: 21600
authns_zone_db_refresh: 1800
authns_zone_db_retry: 900
authns_zone_db_expire: 604800
authns_zone_db_minimum: 1200

authns_zone_db_ns_in_zone: "{{ authns_zone_db_ns == authns_zone_name or authns_zone_db_ns.endswith('.{:s}'.format(authns_zone_name)) | bool }}"
authns_zone_db_ns_ip4: "{{ ansible_default_ipv4['address'] | default('') }}"
authns_zone_db_ns_ip6: "{{ ansible_default_ipv6['address'] | default('') }}"
authns_zone_rr_file: "{{ authns_zone_db_file }}.rr"
authns_zone_rr_owner: root
authns_zone_rr_group: root
authns_zone_rr_mode: 0644

authns_zone_rr_selevel: # omis par défaut
authns_zone_rr_serole: # omis par défaut
authns_zone_rr_setype: # omis par défaut
authns_zone_rr_seuser: # omis par défaut

authns_zone_rr_checksum: # omis par défaut
authns_zone_rr_content: # omis par défaut
authns_zone_rr_decrypt: # omis par défaut
authns_zone_rr_follow: # omis par défaut
authns_zone_rr_force: # omis par défaut
authns_zone_rr_local_follow: # omis par défaut
authns_zone_rr_remote_src: # omis par défaut
authns_zone_rr_src: # omis par défaut

Variables pour key.yml

Les variables suivantes sont requis lors de l'importation du fichier de tâches key :

  • L'une des variables authns_update_key_content ou authns_update_key_src doit être définie. Utilisez la première pour fournir directement une clé de mise à jour DDNS et la seconde pour spécifier un fichier contenant la clé. Ces variables sont référencées dans un appel au module copy, les documents s'appliquent donc également ici. Utilisez ddns-confgen -q -k {{ authns_update_key_name }} pour générer une clé DDNS.

Lors de la configuration d'une nouvelle zone, les variables suivantes sont optionnelles :

  • authns_update_key_name : Le nom de domaine de la zone. Par défaut, il est égal au nom d'hôte d'inventaire.

Les autres variables de cette section devraient rester à leurs valeurs par défaut dans la plupart des cas.

authns_update_key_name: "{{ inventory_hostname }}"

authns_update_key_file: "{{ authns_bind_etc_path }}/key.{{ authns_update_key_name }}"
authns_update_key_owner: root
authns_update_key_group: "{{ authns_os_bind_group }}"
authns_update_key_mode: 0640

authns_update_key_selevel: # omis par défaut
authns_update_key_serole: # omis par défaut
authns_update_key_setype: # omis par défaut
authns_update_key_seuser: # omis par défaut

authns_update_key_checksum: # omis par défaut
authns_update_key_content: # omis par défaut
authns_update_key_decrypt: # omis par défaut
authns_update_key_follow: # omis par défaut
authns_update_key_force: # omis par défaut
authns_update_key_local_follow: # omis par défaut
authns_update_key_remote_src: # omis par défaut
authns_update_key_src: # omis par défaut

Dépendances

Aucune.

Exemple de Playbook

    - hosts: all
      vars:
        authns_zone_rr_content: |
          _test 1D IN TXT "test rr"
        authns_update_key_content: |
          key "{{ inventory_hostname }}" {
              algorithm hmac-sha256;
              secret "{{ my_secret_update_key_variable }}";
          };
      tasks:
        - import_role:
            name: znerol.authns

        - import_role:
            name: znerol.authns
            tasks_from: zone

        - import_role:
            name: znerol.authns
            tasks_from: key

        - import_role:
            name: znerol.authns
            tasks_from: utilities

Licence

BSD

À propos du projet

BIND Authoritative Name Server

Installer
ansible-galaxy install znerol.authns
Licence
Unknown
Téléchargements
100
Propriétaire