jriguera.dnsmasq

ansible-role-dnsmasq

Un rôle polyvalent pour configurer dnsmasq, créé selon cette philosophie :
https://github.com/jriguera/ansible-role-pattern/blob/master/README.md

Ce rôle prend en charge la définition de différentes interfaces pour divers usages (dns, tftp, etc.) et de nombreux paramètres dnsmasq. Il est également capable de gérer le fichier resolv.conf.

Compatible avec Ansible 2.0, fonctionne avec Ubuntu Trusty, Xenial et Centos 7.

Configuration

Les paramètres de configuration par défaut sont :

dnsmasq_enabled_on_startup: True
# Gérer resolvconf
dnsmasq_resolvconf: False

# Installer depuis les dépôts ou directement depuis les paquets du système d'exploitation
dnsmasq_os_packages: True

# Paramètres globaux, réglages nécessaires ! sinon sont ignorés !
dnsmasq_dhcp: True
dnsmasq_tftp: True

### resolv.conf
#dnsmasq_host_domain: local
#dnsmasq_host_search: local
dnsmasq_host_resolvers: [ "127.0.0.1" ]

# Définir la facilité à laquelle dnsmasq envoie les entrées syslog, par défaut à
# DAEMON, et à LOCAL0 lorsque le mode débogage est activé. Si la facilité donnée
# contient au moins un caractère '/', elle est considérée comme un nom de fichier,
# et dnsmasq se connecte au fichier désigné, au lieu de syslog. Si la facilité est '-' 
# alors dnsmasq enregistre sur stderr.
dnsmasq_conf_log: /var/log/dnsmasq.log

# Activer l'enregistrement asynchrone et éventuellement définir la limite du nombre
# de lignes qui seront mises en file d'attente par dnsmasq lorsque l'écriture dans le syslog est lente.
#dnsmasq_conf_log_async:
dnsmasq_conf_log_dns: False

# Liste d'IP ou d'interfaces à écouter (liste vide pour toutes)
dnsmasq_conf_listen: []

# Sur les systèmes qui le supportent, dnsmasq lie l'adresse générique,
# même lorsqu'il écoute seulement certaines interfaces. Il rejette alors
# les demandes auxquelles il ne doit pas répondre. Cela a l'avantage de
# fonctionner même lorsque les interfaces apparaissent et disparaissent ou changent d'adresse.
dnsmasq_conf_bind_interfaces: 'dynamic'


### DNS
# Accepter les requêtes DNS uniquement des hôtes dont l'adresse est sur un sous-réseau local,
# c'est-à-dire un sous-réseau pour lequel une interface existe sur le serveur.
#dnsmasq_conf_local_service: True

# Ne jamais transférer de noms simples (sans point ou partie de domaine)
dnsmasq_conf_domain_needed: True

# Activer le code pour détecter les boucles de transfert DNS ; c'est-à-dire la situation où une requête
# envoyée à un serveur en amont finit par revenir comme une nouvelle requête à l'instance dnsmasq.
#dnsmasq_conf_dns_loop_detect: True

# Tous les lookups inverses pour les plages IP privées (c'est-à-dire 192.168.x.x, etc.) qui
# ne sont pas trouvées dans /etc/hosts ou le fichier de baux DHCP sont répondus par
# "aucun tel domaine" plutôt que d'être transférés en amont.
# Ne jamais transférer d'adresses dans les espaces d'adresses non routés.
dnsmasq_conf_bogus_priv: True

# Si vous ne voulez pas que dnsmasq lise /etc/hosts, décommentez la
# ligne suivante.
dnsmasq_conf_no_hosts: False

# Fichier d'hôtes supplémentaire, format /etc/hosts (c'est une liste !)
#dnsmasq_conf_hosts:
# - ["127.0.0.1", "localhost"]
# - ["::1", "ip6-localhost", "ip6-loopback"]
# - ["fe00::0", "ip6-localnet"]
# - ["ff00::0", "ip6-mcastprefix"]
# - ["ff02::1", "ip6-allnodes"]
# - ["ff02::2", "ip6-allrouters"]
# - ["192.168.1.10", "foo.mydomain.org", "foo" ]
dnsmasq_conf_hosts: []

# Définir la taille du cache de la mémoire DNS ici.
cache-size: 1024

# Désactiver la mise en cache négative. La mise en cache négative permet à dnsmasq de se souvenir
# des réponses "aucun tel domaine" des serveurs de noms en amont et de répondre à des requêtes identiques
# sans les transférer à nouveau.
# Les réponses négatives des serveurs en amont contiennent généralement des informations de durée de vie
# dans les enregistrements SOA que dnsmasq utilise pour la mise en cache. Si ce paramètre
# n'est pas défini : "no-negcache".
dnsmasq_conf_negcache: 5

# Ce drapeau oblige dnsmasq à essayer chaque requête avec chaque serveur strictement dans
# l'ordre dans lequel ils apparaissent dans /etc/resolv.conf
dnsmasq_conf_strict_order: False

# Ce drapeau oblige dnsmasq à envoyer toutes les requêtes à tous les serveurs disponibles.
# La réponse du serveur qui répond en premier sera renvoyée à l'original.
dnsmasq_conf_all_servers: False

# Si vous voulez que dnsmasq lise "/etc/resolv.conf" ou tout autre fichier.
# Vide ou non défini pour désactiver la lecture de resolv.conf
dnsmasq_conf_resolv: /etc/resolv.conf

# Ne pas surveiller /etc/resolv.conf pour les changements.
dnsmasq_conf_no_poll: False

# si dnsmasq_conf_no_poll est False alors /etc/resolv.conf est relu ou les
# serveurs en amont sont définis via DBus, vider le cache DNS.
dnsmasq_conf_clear_on_reload: True

# Spécifier l'adresse IP des serveurs en amont directement. Ce flag ne supprime pas
# la lecture de /etc/resolv.conf : ['localnet', '192.168.0.1']
# Exemple de routage des requêtes PTR vers des serveurs de noms : cela enverra toutes les
# requêtes d'adresse->nom pour 192.168.3/24 à le serveur de noms 10.1.2.3
# ['3.168.192.in-addr.arpa', '10.1.2.3']
#dnsmasq_conf_servers:
#  - [ "/google.com/", "8.8.8.8" ]
#  - "8.8.4.4"
dnsmasq_conf_servers: [ "8.8.8.8", "8.8.4.4" ]

# Retourner un enregistrement MX pointant vers lui-même pour toutes les machines locales : '_self'
# Enregistrement MX pointant vers le serveur dnsmasq pour toutes les machines locales : '_local' ou ''
# Enregistrement MX pointant vers "servername" pour toutes les machines locales : 'servername'
# Retourner un enregistrement MX nommé "maildomain.com" avec cible
# "servername" et préférence 50 : [maildomain.com, servername, 50]
#dnsmasq_conf_mx: servername
#dnsmasq_conf_mx_domain: {{ hostvars['k4.ww.mens.de'].
#dnsmasq_conf_mx_pref: 1

# Ajouter des enregistrements A, AAAA et PTR au DNS. Cela ajoute un ou plusieurs noms au
# DNS avec des enregistrements IPv4 (A) et IPv6 (AAAA)
#dnsmasq_conf_host_records:
#  -[]

# Définir une zone DNS pour laquelle dnsmasq agit comme serveur autoritaire.
#dnsmasq_conf_auth_zone: []


### DHCP

# Journaliser beaucoup d'informations supplémentaires sur les transactions DHCP.
dnsmasq_conf_log_dhcp: False

# Définir le domaine pour dnsmasq. c'est optionnel, mais si c'est défini, cela fait les choses suivantes :
# 1) Permet aux hôtes DHCP d'avoir des noms de domaine complètement qualifiés, tant que
#     la partie domaine correspond à ce réglage.
# 2) Définit l'option "domain" DHCP, potentiellement en définissant le
#    domaine de tous les systèmes configurés par DHCP.
# 3) Fournit la partie domaine pour "expand-hosts".
# Si le domaine est donné comme "#" alors le domaine est lu de la première
# directive "search" dans /etc/resolv.conf
dnsmasq_conf_domain: '#'

# Seulement si dnsmasq_conf_domain est défini, le nom non qualifié n'est plus mis
# dans le DNS, seulement le nom qualifié.
dnsmasq_conf_dhcp_fqdn: True

# Doit être défini lorsque dnsmasq est définitivement le seul serveur DHCP sur un réseau.
dnsmasq_conf_dhcp_authoritative: True

# Dnsmasq est conçu pour choisir des adresses IP pour les clients DHCP en utilisant un hash
# de l'adresse MAC du client.
dnsmasq_conf_dhcp_sequential_ip: True

# Désactiver la réutilisation des champs nom du serveur DHCP et nom du fichier comme espace d'option supplémentaire.
dnsmasq_conf_dhcp_no_override: True

# Décommentez ceci pour activer le serveur DHCP intégré, vous devez
# fournir la plage d'adresses disponibles à louer et éventuellement
# un temps de location. Si vous avez plus d'un réseau, vous devrez
# répéter cela pour chaque réseau sur lequel vous souhaitez fournir un service DHCP.
#dnsmasq_conf_dhcp: []
#dnsmasq_conf_dhcp:
#   - device: eth0:
#     range: [192.168.1.80, 192.168.1.150, infinite]
#     option: []
#     ignore_names: True
#     generate_names: True
#     boot: []
#     tftp: /var/lib/tftpboot

# Lire les informations sur les hôtes DHCP à partir de la liste ou d'un fichier local spécifié
#dnsmasq_conf_dhcp_hosts: []

# Supprimer complètement l'utilisation du fichier de base de données des baux. Le fichier ne sera pas
# créé, lu ou écrit.
dnsmasq_conf_dhcp_leasefile_ro: False

# Chaque fois qu'un nouveau bail DHCP est créé, ou un ancien détruit, ou un fichier TFTP
# transféré est terminé, l'exécutable spécifié par cette option est exécuté.
#dnsmasq_conf_dhcp_script: files/program.bin


### TFTP

# Activer le mode sécurisé TFTP : sans cela, tout fichier lisible par le
# processus dnsmasq selon les règles de contrôle d'accès unix normales est disponible via TFTP
dnsmasq_conf_tftp_secure: False

# Convertir les noms de fichiers dans les requêtes TFTP en minuscules. Cela est utile pour
# les requêtes provenant de machines Windows
dnsmasq_conf_tftp_lowercase: True

# Définir le nombre maximum de connexions TFTP simultanées autorisées
dnsmasq_conf_tftp_max: 50

# Empêcher le serveur TFTP de négocier l'option "blocksize" avec un client
dnsmasq_conf_tftp_no_blocksize: False

Vous pouvez écraser ces paramètres par défaut comme variables de rôle. Jetez un œil à l'exemple dans site.yml avec vagrant et testez-le en utilisant vagrant up.

En plus de gérer dnsmasq, ce rôle est capable de gérer le fichier /etc/resolv.conf en définissant dnsmasq_resolvconf: true et les paramètres dnsmasq_host_*.

Auteur

José Riguera López jriguera@gmail.com

À propos du projet

Install and setup Dnsmasq server on RedHat/Debian based distributions

Installer
ansible-galaxy install jriguera.dnsmasq
Licence
Unknown
Téléchargements
714
Propriétaire