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_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 %}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user