first commit
This commit is contained in:
12
ansible/roles/dns_server/handlers/main.yml
Normal file
12
ansible/roles/dns_server/handlers/main.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
# ================================================================
|
||||
# Handlers pour le rôle dns_server
|
||||
#
|
||||
# Ces tâches ne sont exécutées que si elles sont "notifiées"
|
||||
# par une autre tâche qui a effectué un changement.
|
||||
# ================================================================
|
||||
|
||||
- name: Restart dnsmasq
|
||||
ansible.builtin.service:
|
||||
name: dnsmasq
|
||||
state: restarted
|
||||
55
ansible/roles/dns_server/tasks/main.yml
Normal file
55
ansible/roles/dns_server/tasks/main.yml
Normal file
@@ -0,0 +1,55 @@
|
||||
---
|
||||
# Tâches principales pour le rôle dns_server
|
||||
|
||||
- name: "[DNS] Installation du paquet Dnsmasq"
|
||||
tags: install
|
||||
ansible.builtin.apt:
|
||||
name: dnsmasq
|
||||
state: present
|
||||
update_cache: true
|
||||
|
||||
- name: "[DNS] Création du dossier pour les fichiers d'hôtes"
|
||||
tags: configure
|
||||
ansible.builtin.file:
|
||||
path: /etc/dnsmasq.hosts.d
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0755'
|
||||
|
||||
- name: "[DNS] Création du fichier de configuration principal (dnsmasq.conf)"
|
||||
tags: configure
|
||||
ansible.builtin.template:
|
||||
src: dnsmasq.conf.j2
|
||||
dest: /etc/dnsmasq.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Restart dnsmasq
|
||||
|
||||
- name: "[DNS] Déploiement des enregistrements DNS statiques (home)"
|
||||
tags: configure
|
||||
ansible.builtin.template:
|
||||
src: records.home.j2
|
||||
dest: /etc/dnsmasq.hosts.d/records.home.arnodo.fr
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Restart dnsmasq
|
||||
|
||||
- name: "[DNS] Déploiement des enregistrements DNS dynamiques (lab)"
|
||||
tags: configure
|
||||
ansible.builtin.template:
|
||||
src: records.lab.j2
|
||||
dest: /etc/dnsmasq.hosts.d/records.lab.arnodo.fr
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: Restart dnsmasq
|
||||
|
||||
- name: "[DNS] Vérification que le service Dnsmasq est actif et activé au démarrage"
|
||||
tags: service
|
||||
ansible.builtin.service:
|
||||
name: dnsmasq
|
||||
state: started
|
||||
enabled: true
|
||||
33
ansible/roles/dns_server/templates/dnsmasq.conf.j2
Normal file
33
ansible/roles/dns_server/templates/dnsmasq.conf.j2
Normal file
@@ -0,0 +1,33 @@
|
||||
# ================================================================
|
||||
# Fichier de configuration principal de Dnsmasq
|
||||
# CE FICHIER EST GÉRÉ PAR ANSIBLE - NE PAS MODIFIER MANUELLEMENT
|
||||
# ================================================================
|
||||
|
||||
# Ne jamais transmettre les requêtes pour le domaine local vers l'extérieur
|
||||
local=/{{ dnsmasq_domain_name }}/
|
||||
|
||||
# Définit le domaine de base pour les noms courts
|
||||
domain={{ dnsmasq_domain_name }}
|
||||
|
||||
# Active la fonctionnalité 'domain' ci-dessus pour les noms dans les fichiers d'hôtes
|
||||
expand-hosts
|
||||
|
||||
# Ne pas lire le fichier /etc/resolv.conf du système
|
||||
no-resolv
|
||||
|
||||
# Interfaces d'écoute
|
||||
{% for addr in dnsmasq_listen_addresses %}
|
||||
listen-address={{ addr }}
|
||||
{% endfor %}
|
||||
|
||||
# Serveurs DNS en amont (upstream)
|
||||
{% for server in dnsmasq_upstream_servers %}
|
||||
server={{ server }}
|
||||
{% endfor %}
|
||||
|
||||
# Taille du cache
|
||||
cache-size={{ dnsmasq_cache_size }}
|
||||
|
||||
# On indique explicitement où trouver nos listes d'hôtes additionnelles
|
||||
addn-hosts=/etc/dnsmasq.hosts.d/records.home.arnodo.fr
|
||||
addn-hosts=/etc/dnsmasq.hosts.d/records.lab.arnodo.fr
|
||||
8
ansible/roles/dns_server/templates/records.home.j2
Normal file
8
ansible/roles/dns_server/templates/records.home.j2
Normal file
@@ -0,0 +1,8 @@
|
||||
# ===================================================
|
||||
# Fichier des enregistrements DNS statiques (home)
|
||||
# GÉRÉ PAR ANSIBLE
|
||||
# Source: group_vars/all/static_records.yml
|
||||
# ===================================================
|
||||
{% for record in dns_records_home %}
|
||||
{{ record.ip }} {{ record.names | join(' ') }}
|
||||
{% endfor %}
|
||||
11
ansible/roles/dns_server/templates/records.lab.j2
Normal file
11
ansible/roles/dns_server/templates/records.lab.j2
Normal file
@@ -0,0 +1,11 @@
|
||||
# ===================================================
|
||||
# Fichier des enregistrements DNS dynamiques (lab)
|
||||
# GÉRÉ PAR ANSIBLE
|
||||
# Source: Inventaire généré par Terraform
|
||||
# ===================================================
|
||||
#
|
||||
# IP Address FQDN Short Name
|
||||
#
|
||||
{% for host in groups['lab'] | default([]) %}
|
||||
{{ hostvars[host].ansible_host }} {{ hostvars[host].inventory_hostname }} {{ hostvars[host].inventory_hostname_short }}
|
||||
{% endfor %}
|
||||
Reference in New Issue
Block a user