first commit

This commit is contained in:
darnodo
2025-06-09 11:58:11 +02:00
commit 6a00eb2708
20 changed files with 532 additions and 0 deletions

View 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

View 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

View 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

View 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 %}

View 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 %}