ricsanfre.dnsmasq
Ansible Role: dnsmasq
This Ansible role helps you install and set up dnsmasq, a lightweight DHCP and DNS server, on a Linux system.
Requirements
You don't need any special requirements to use this role.
Role Variables
Here are some variables you can use, along with their default settings (see defaults\main.yaml):
Host interface and IP for dnsmasq:
dnsmasq_interface: '' dnsmasq_listen_address: ''Default values are empty. The role will automatically find the interface and IP from the system's facts. If your server has multiple interfaces, please provide these values.
Local domain name:
dnsmasq_domain_name: example.ricsanfre.comDNS servers to use for resolving queries:
dnsmasq_upstream_dns_servers: - 80.58.61.250 - 80.58.61.254DHCP address range:
dnsmasq_dhcp_range: '10.0.0.32,10.0.0.128'
By default, dnsmasq will manage the DHCP and DNS records for hosts listed in the inventory by using the ip, mac, and hostname variables. Here's an example of how to set these up:
hosts:
all:
children:
cluster:
hosts:
server1:
hostname: server1
ip: 10.0.0.11
mac: dc:a6:32:9c:29:b9
server2:
hostname: server2
ip: 10.0.0.12
mac: e4:5f:01:2d:fd:19
server3:
hostname: server3
ip: 10.0.0.13
mac: e4:5f:01:2f:49:05
You can also add more DHCP and DNS records using these variables:
Additional DHCP records:
dnsmasq_additional_dhcp_hosts: {}Example:
dnsmasq_additional_dhcp_hosts: ethernet_switch: desc: "Ethernet Switch" mac: 94:a6:7e:7c:c7:69 ip: 10.0.0.2Additional DNS records:
dnsmasq_additional_dns_hosts: {}Example:
dnsmasq_additional_dns_hosts: ntp_server: desc: "NTP Server" hostname: ntp ip: 10.0.0.1 dns_server: desc: "DNS Server" hostname: dns ip: 10.0.0.1
You can also enable the TFTP service and set its root directory:
dnsmasq_enable_tftp: false
dnsmasq_tftp_root: /srv/tftp
If you want, you can add more configuration options at the end of the dnsmasq config file:
dnsmasq_additional_conf: []
Example:
dnsmasq_additional_conf: |-
# Enabling Netboot
dhcp-boot=pxelinux.0
dhcp-match=set:efi-x86_64,option:client-arch,7
dhcp-boot=tag:efi-x86_64,bootx64.efi
Dependencies
There are no dependencies for this role.
Example Playbook
Here's how you can use this role in a playbook:
---
- name: Set up Dnsmasq
hosts: host
vars:
additional_dhcp_hosts:
ethernet_switch:
desc: "Ethernet Switch"
mac: 94:a6:7e:7c:c7:69
ip: 10.0.0.2
additional_dns_hosts:
ntp_server:
desc: "NTP Server"
hostname: ntp
ip: 10.0.0.1
dns_server:
desc: "DNS Server"
hostname: dns
ip: 10.0.0.1
roles:
- role: ricsanfre.dnsmasq
License
This role is available under the MIT/BSD license.
Author Information
This role was created by Ricardo Sanchez (ricsanfre).
ansible-galaxy install ricsanfre.dnsmasq