# role_dnsmasq
Ce rôle permet d'installer et configurer dnsmasq.
## Variables
### dnsmasq_conf_domain
Nom de domain utilisé pour qualifier les noms courts.
*Valeur par défaut: aucune*
### dnsmasq_conf_servers
Liste d'adresses IP auxquelles les requêtes DNS sont transmises si dnsmasq ne porte pas le domaine.
*Valeur par défaut: aucune*
### dnsmasq_servers
Liste d'IP ou de noms d'hôtes servant de serveur DNS.
*Valeur par défaut: aucune*
### dnsmasq_host_ips
Liste des IP de l'hôte.
*Valeur par défaut: aucune*
### dnsmasq_host_aliases
Liste d'alias pour un hôte (*host_groups*).
*Valeur par défaut: aucune*
### dnsmasq_client_filename
Nom du fichier pour le client.
*Valeur par défaut: `{{ inventory_hostname }}`*
### dnsmasq_client_hostname
Nom d'hôte du client.
*Valeur par défaut: `{{ inventory_hostname }} {{ inventory_hostname_short }}`*
## Exemple d'utilisation
### inventory.yml
```yaml
---
all:
hosts:
host1.ykn.local:
host2.ykn.local:
children:
dnsservers:
hosts:
dnsmasq1.ykn.local:
dnsmasq2.ykn.local:
```
### group_vars/all.yml
```yaml
---
dnsmasq_servers: "{{ groups['dnsservers'] }}"
```
### group_vars/dnsservers.yml
```yaml
---
dnsmasq_conf_domain: ykn.local
dnsmasq_conf_servers:
- 127.0.0.1#53000
- ::1#53000
```
### host_vars/host1.ykn.local.yml
```yaml
---
dnsmasq_host_ipv4: [192.168.50.6]
dnsmasq_host_ipv6: [fd00:ff50::d006]
dnsmasq_host_alias:
- monsuperhost1.ykn.local
- monsuperhost1
- toto.ykn.local
- toto
```
### playbook.yml
```yaml
---
- name: Déployer les serveurs DNS
hosts: dnsservers
roles:
- name: stubby
- name: dnsmasq
- name: nftables
- name: Gérer l'enregistrement DNS
hosts: 'all:!dnsservers'
gather_facts: false
tasks:
- name: Inclure le rôle
ansible.builtin.include_role:
name: dnsmasq
tasks_from: client
```