You've already forked role_dnsmasq
							
							feat: Use automatic inventory
This commit is contained in:
		@@ -15,4 +15,8 @@ dnsmasq_host_aliases: []
 | 
			
		||||
dnsmasq_client_filename: "{{ inventory_hostname }}"
 | 
			
		||||
dnsmasq_client_hostname: "{{ inventory_hostname }} {{ inventory_hostname_short }}"
 | 
			
		||||
 | 
			
		||||
# Groupe ansible pour l'enregistrement automatique
 | 
			
		||||
dnsmasq_ansible_group: zone_gaia
 | 
			
		||||
 | 
			
		||||
# Enregistrement spécifiques
 | 
			
		||||
dnsmasq_specifics: []
 | 
			
		||||
 
 | 
			
		||||
@@ -12,5 +12,4 @@ galaxy_info:
 | 
			
		||||
      versions:
 | 
			
		||||
        - all
 | 
			
		||||
 | 
			
		||||
dependencies:
 | 
			
		||||
  - role: nftables
 | 
			
		||||
dependencies: []
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,13 @@
 | 
			
		||||
---
 | 
			
		||||
# tasks file for security
 | 
			
		||||
 | 
			
		||||
- name: Déployer le fichier lié à l'hôte
 | 
			
		||||
- name: Déploiement des enregistrement via ansible
 | 
			
		||||
  ansible.builtin.template:
 | 
			
		||||
    owner: dnsmasq
 | 
			
		||||
    group: root
 | 
			
		||||
    mode: u=rw,g=r,o=r
 | 
			
		||||
    src: "{{ role_path }}/templates/host.conf.j2"
 | 
			
		||||
    dest: /srv/dnsmasq/{{ dnsmasq_client_filename }}.conf
 | 
			
		||||
    src: "{{ role_path }}/templates/auto.conf.j2"
 | 
			
		||||
    dest: /srv/dnsmasq/auto_{{ dnsmasq_ansible_group }}.conf
 | 
			
		||||
  when: dnsmasq_hosts | length > 0
 | 
			
		||||
  become: true
 | 
			
		||||
  delegate_to: "{{ dnsserver }}"
 | 
			
		||||
@@ -15,16 +15,3 @@
 | 
			
		||||
  loop_control:
 | 
			
		||||
    loop_var: dnsserver
 | 
			
		||||
  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 }}
 | 
			
		||||
 | 
			
		||||
{% for ip in item.ips %}
 | 
			
		||||
{% set aliases = item.get('aliases', []) %}
 | 
			
		||||
{{ ip }}  {{ ([item.hostname] + aliases) | join(' ') }}
 | 
			
		||||
{% for host in groups['zone_gaia'] %}
 | 
			
		||||
{%- 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 %}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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 %}
 | 
			
		||||
		Reference in New Issue
	
	Block a user