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..3f55b91 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: specific.conf.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..d3157f9 --- /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] + aliases) | join(' ') }} +{% endfor %}