diff --git a/README.md b/README.md
index 34dfdc7..5a89f7f 100644
--- a/README.md
+++ b/README.md
@@ -46,6 +46,12 @@ Nom d'hôte du client.
*Valeur par défaut: `{{ inventory_hostname }} {{ inventory_hostname_short }}`*
+### dnsmasq_specifics
+
+Liste de dictionnaires contenant le nom d'hôte, les alias et la liste d'IP associées.
+
+*Valeur par défaut: aucune*
+
## Exemple d'utilisation
### inventory.yml
diff --git a/defaults/main.yml b/defaults/main.yml
index 7a47c24..2b3f154 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -11,3 +11,5 @@ dnsmasq_host_aliases: []
dnsmasq_client_filename: "{{ inventory_hostname }}"
dnsmasq_client_hostname: "{{ inventory_hostname }} {{ inventory_hostname_short }}"
+
+dnsmasq_specifics: []
diff --git a/tasks/configuration.yml b/tasks/configuration.yml
index 9147453..9417fe3 100644
--- a/tasks/configuration.yml
+++ b/tasks/configuration.yml
@@ -13,10 +13,26 @@
- name: Déployer la configuration de l'instance
ansible.builtin.template:
+ src: host.conf.j2
+ dest: /srv/dnsmasq/{{ inventory_hostname }}.conf
owner: dnsmasq
group: root
mode: u=rw,g=r,o=r
- src: host.conf.j2
- dest: /srv/dnsmasq/{{ inventory_hostname }}.conf
become: true
notify: Recharger dnsmasq.service
+
+- name: Déployer les configurations specifiques
+ ansible.builtin.template:
+ src: specifics.j2
+ dest: "{{ filename }}"
+ owner: dnsmasq
+ group: root
+ mode: u=rw,g=r,o=r
+ when: dnsmasq_specifics | length > 0
+ become: true
+ notify: Recharger dnsmasq.service
+ loop: "{{ dnsmasq_specifics }}"
+ loop_control:
+ label: "{{ filename }}"
+ vars:
+ filename: /srv/dnsmasq/{{ item.hostname }}.conf
diff --git a/templates/specific.conf.j2 b/templates/specific.conf.j2
new file mode 100644
index 0000000..cf09905
--- /dev/null
+++ b/templates/specific.conf.j2
@@ -0,0 +1,6 @@
+# {{ ansible_managed }}
+
+{% for ip in item.ips %}
+{% set aliases = item.get(aliases, []) %}
+{{ ip }} {{ ([item.hostname] + item.aliases) | join(' ') }}
+{% endfor %}