tenhishadow.manage_bind

tenhishadow.manage_bind

Statut de la construction

C'est une automatisation pour configurer BIND sur des serveurs gérés. BIND vérifiera la configuration et les zones avant de redémarrer. Au cours de l'exécution, Ansible va :

  • installer et configurer firewalld (si la variable par défaut "firewalld" n'est pas remplacée)
  • installer BIND dans un chroot
  • configurer named et les zones en vérifiant la syntaxe avec named-checkconf et named-checkzone
  • redémarrer le démon BIND en cas de succès

Exigences

Exemple de Playbook

---

- hosts: external_dns
  become: "yes"
  become_user: "root"
  gather_facts: "true"
  any_errors_fatal: "true"
  serial: "1" 			# faire une par une pour éviter un échec sur tous les serveurs BIND
  vars:
    - configs: configs
  vars_files:
    - configs/ansible_vars.yml
  roles:
  - tenhishadow.manage_bind

...

Exemples de fichiers pour le playbook

.
├── configs
│   ├── ansible_vars.yml	# variables pour le playbook incluant les zones et les paramètres
│   ├── example.com.zone	# fichier de zone avec les enregistrements
│   ├── example1.com.zone	# fichier de zone avec les enregistrements
│   ├── named.j2		# configuration centrale qui sera /etc/named.conf 
└── playbook.yml

Exemple de contenu pour ansible_vars.yml:

---

zones:
  example.com:
    file: "example.com.zone"
    zone_serial: '2018052901'
    zone_refresh: '3600'
    zone_retry: '7200'
    zone_expire: '3600000'
    zone_minimum: '3600'
  example1.com:
    file: "example1.com.zone"
    zone_serial: '2018081301'
    zone_refresh: '3600'
    zone_retry: '7200'
    zone_expire: '3600000'
    zone_minimum: '3600'

...

Exemple de contenu pour named.j2

# {{ ansible_managed }}
options {
 listen-on port 53              { any; };
 listen-on-v6 port 53           { any; };
 directory                      "/var/named";
 dump-file                      "/var/named/data/cache_dump.db";
 statistics-file                "/var/named/data/named_stats.txt";
 memstatistics-file             "/var/named/data/named_mem_stats.txt";
 pid-file                       "/run/named/named.pid";
 session-keyfile                "/run/named/session.key";
 allow-query                    { any; };
 recursion                      no;
 version                        "AIX 5.1.0";
 auth-nxdomain                  no;
 dnssec-enable                  yes;
 dnssec-validation              auto;
 bindkeys-file                  "/etc/named.iscdlv.key";
 managed-keys-directory         "/var/named/dynamic";
 transfers-out                  100;
};

logging {
 channel  default_debug {
 file     "data/named.run";
 severity dynamic;
 };
};

# DÉBUT DES ZONES
{% for key, value in zones.iteritems() %}
zone "{{ key }}" {
 type           master;
 file           "/var/named/data/{{ value.file }}";
 allow-transfer { none; };
};
{% endfor %}
# FIN DES ZONES

Licence

GPL v 3.0

Informations sur l'auteur

À propos du projet

Role for configuring bind9

Installer
ansible-galaxy install tenhishadow.manage_bind
Licence
gpl-3.0
Téléchargements
21.5k
Propriétaire
DevOps