feat: Use automatic inventory
This commit is contained in:
parent
89a1ba95cd
commit
180fe1c26a
defaults
meta
tasks
templates
@ -15,4 +15,8 @@ dnsmasq_host_aliases: []
|
|||||||
dnsmasq_client_filename: "{{ inventory_hostname }}"
|
dnsmasq_client_filename: "{{ inventory_hostname }}"
|
||||||
dnsmasq_client_hostname: "{{ inventory_hostname }} {{ inventory_hostname_short }}"
|
dnsmasq_client_hostname: "{{ inventory_hostname }} {{ inventory_hostname_short }}"
|
||||||
|
|
||||||
|
# Groupe ansible pour l'enregistrement automatique
|
||||||
|
dnsmasq_ansible_group: zone_gaia
|
||||||
|
|
||||||
|
# Enregistrement spécifiques
|
||||||
dnsmasq_specifics: []
|
dnsmasq_specifics: []
|
||||||
|
@ -12,5 +12,4 @@ galaxy_info:
|
|||||||
versions:
|
versions:
|
||||||
- all
|
- all
|
||||||
|
|
||||||
dependencies:
|
dependencies: []
|
||||||
- role: nftables
|
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
---
|
---
|
||||||
# tasks file for security
|
# tasks file for security
|
||||||
|
|
||||||
- name: Déployer le fichier lié à l'hôte
|
- name: Déploiement des enregistrement via ansible
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
owner: dnsmasq
|
owner: dnsmasq
|
||||||
group: root
|
group: root
|
||||||
mode: u=rw,g=r,o=r
|
mode: u=rw,g=r,o=r
|
||||||
src: "{{ role_path }}/templates/host.conf.j2"
|
src: "{{ role_path }}/templates/auto.conf.j2"
|
||||||
dest: /srv/dnsmasq/{{ dnsmasq_client_filename }}.conf
|
dest: /srv/dnsmasq/auto_{{ dnsmasq_ansible_group }}.conf
|
||||||
when: dnsmasq_hosts | length > 0
|
when: dnsmasq_hosts | length > 0
|
||||||
become: true
|
become: true
|
||||||
delegate_to: "{{ dnsserver }}"
|
delegate_to: "{{ dnsserver }}"
|
||||||
@ -15,16 +15,3 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
loop_var: dnsserver
|
loop_var: dnsserver
|
||||||
notify: Recharger dnsmasq.service sur les serveurs
|
notify: Recharger dnsmasq.service sur les serveurs
|
||||||
|
|
||||||
- name: Supprimer le fichier lié à l'hôte
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: /srv/dnsmasq/{{ dnsmasq_client_filename }}.conf
|
|
||||||
state: absent
|
|
||||||
when: dnsmasq_hosts | length > 0
|
|
||||||
tags: [destruction, never]
|
|
||||||
become: true
|
|
||||||
delegate_to: "{{ dnsserver }}"
|
|
||||||
loop: "{{ dnsmasq_hosts }}"
|
|
||||||
loop_control:
|
|
||||||
loop_var: dnsserver
|
|
||||||
notify: Recharger dnsmasq.service sur les serveurs
|
|
||||||
|
17
templates/auto.conf.j2
Normal file
17
templates/auto.conf.j2
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
|
{% for host in groups[dnsmasq_ansible_group] %}
|
||||||
|
{%- set ipv4 = hostvars[host]['ansible_host'] %}
|
||||||
|
{%- set ipv6_suffix = hostvars[host]['ansible_host'] | split('.') | last %}
|
||||||
|
{%- set aliases = [host] + hostvars[host].get('dnsmasq_host_aliases', []) %}
|
||||||
|
|
||||||
|
# {{ host }}
|
||||||
|
{{ ipv4 }} {{ aliases | join(' ') }}
|
||||||
|
{% if (ipv6_suffix | int) < 10 %}
|
||||||
|
2a01:e0a:ee5:8b0::d00{{ ipv6_suffix }} {{ aliases | join(' ') }}
|
||||||
|
{% elif (ipv6_suffix | int) < 100 %}
|
||||||
|
2a01:e0a:ee5:8b0::d0{{ ipv6_suffix }} {{ aliases | join(' ') }}
|
||||||
|
{% else %}
|
||||||
|
2a01:e0a:ee5:8b0::d{{ ipv6_suffix }} {{ aliases | join(' ') }}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
@ -1,6 +1,17 @@
|
|||||||
# {{ ansible_managed }}
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
{% for ip in item.ips %}
|
{% for host in groups['zone_gaia'] %}
|
||||||
{% set aliases = item.get('aliases', []) %}
|
{%- set ipv4 = hostvars[host]['ansible_host'] %}
|
||||||
{{ ip }} {{ ([item.hostname] + aliases) | join(' ') }}
|
{%- set ipv6_suffix = hostvars[host]['ansible_host'] | split('.') | last %}
|
||||||
|
{%- set aliases = [host] + hostvars[host].get('dnsmasq_host_aliases', []) %}
|
||||||
|
|
||||||
|
# {{ host }}
|
||||||
|
{{ ipv4 }} {{ aliases | join(' ') }}
|
||||||
|
{% if (ipv6_suffix | int) < 10 %}
|
||||||
|
2a01:e0a:ee5:8b0::d00{{ ipv6_suffix }} {{ aliases | join(' ') }}
|
||||||
|
{% elif (ipv6_suffix | int) < 100 %}
|
||||||
|
2a01:e0a:ee5:8b0::d0{{ ipv6_suffix }} {{ aliases | join(' ') }}
|
||||||
|
{% else %}
|
||||||
|
2a01:e0a:ee5:8b0::d{{ ipv6_suffix }} {{ aliases | join(' ') }}
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
7
templates/specific.conf.j2.disabled
Normal file
7
templates/specific.conf.j2.disabled
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
|
{% for host in group['zone_gaia'] %}
|
||||||
|
# {{ inventory_hostname }}
|
||||||
|
192.168.84.{{ proxmox_host_id }} {{ inventory_hostname }} {{ inventory_hostname_short }} {{ dnsmasq_host_aliases | join(' ') }}
|
||||||
|
2a01:cb00:131:f100::d0{{ proxmox_host_id }} {{ inventory_hostname }} {{ inventory_hostname_short }} {{ dnsmasq_host_aliases | join(' ') }}
|
||||||
|
{% endfor %}
|
Loading…
x
Reference in New Issue
Block a user