From 6258dd6d5766a600cb1678191f925cd3b2888641 Mon Sep 17 00:00:00 2001 From: Alexandre Le Gall Date: Tue, 26 Sep 2023 11:12:29 +0200 Subject: [PATCH] =?UTF-8?q?[EVO]=20G=C3=A9rer=20des=20fichiers=20sp=C3=A9c?= =?UTF-8?q?ifiques?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 ++++++ defaults/main.yml | 2 ++ tasks/configuration.yml | 20 ++++++++++++++++++-- templates/specific.conf.j2 | 6 ++++++ 4 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 templates/specific.conf.j2 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 %}