Tested on:
Ubuntu 12.04
default['dnsmasq']['domain']
- The default domain used when resolving domains names, as well as for DHCP clients.
default['dnsmasq']['dhcp']['dhcp_range']
- The DHCP range to be used by the dhcp server. This includes the TTL value at the end of the range in a standard dnsmasq config. For example:
# Assigns clients IPs from 192.168.0.50 - 192.168.0.150 with a 12
# hour lease expiration.
192.168.0.50,192.168.0.150,12h
default['dnsmasq']['dhcp']['dhcp_hosts']
- An array of static hosts to be assign specific IP address via DHCP. For example:
# This will assign the IP 192.168.0.20 to the network adapter wit
# the MAC address `11:22:33:44:55:66`.
[
"11:22:33:44:55:66,192.168.0.60"
]
default['dnsmasq']['dhcp']['default_route']
- This is the default route to use for all DHCP clients. This defaults to the IP where the DHCP server is running.
-
default['dnsmasq']['dns']['domain-needed']
- Never forward plain names (without a dot or domain part) -
default['dnsmasq']['dns']['bogus-priv']
- Never forward addresses in the non-routed address spaces. -
default['dnsmasq']['dns']['expand-hosts']
- Set this if you want to have a domain automatically added to simple names in a hosts-file. -
default['dnsmasq']['dns']['nameservers']
- An array of the IP addresses to forward DNS requests to. For instance, for Google public DNS use:
[
'8.8.8.8',
'8.8.4.4'
]
default['dnsmasq']['dns']['hosts']
- This should be an array of hashes with the domain as the key and the ip as the value. For example:
{
"test1.com" => "10.0.0.1",
"test2.com" => "10.0.0.2"
}
Installs dnsmasq package and defines service.
Configures dnsmasq as a DHCP server.
Configures dnsmasq as a DNS cache server.
The following is an example JSON representation of the node attributes for using this cookbook with chef-solo in order to setup a Dnsmasq server for both DHCP and DNS.
File: nodes/10.0.0.2.json
{
"name": "10.0.0.2",
"default": {
"dnsmasq": {
"domain": "mydomain.local",
"dhcp": {
"default_route": "10.0.0.1",
"dhcp_range": "10.0.2.3,10.100.2.100,12h"
},
"dns": {
"nameservers": [
"8.8.8.8",
"4.4.4.4"
]
}
}
},
"run_list": [
"recipe[dnsmasq::dhcp]",
"recipe[dnsmasq::dns]"
]
}
Author:: Matt Outten ([email protected])