DNSMasq
(opens in a new tab) (opens in a new tab) (opens in a new tab)
Install and configure dnsmasq.
Maintainers
This cookbook is maintained by the Sous Chefs. The Sous Chefs are a community of Chef cookbook maintainers working together to maintain important cookbooks. If you’d like to know more please visit sous-chefs.org (opens in a new tab) or come chat with us on the Chef Community Slack in #sous-chefs (opens in a new tab).
Recipes
default
Installs the dnsmasq
package. Depending on the [:dnsmasq][:enable_dns]
and [:dnsmasq][:enable_dhcp]
attributes it includes the dns
and dhcp
recipes respectively.
dhcp
Includes the default
recipe and writes the contents of the node[:dnsmasq][:dhcp]
attribute hash to /etc/dnsmasq.d/dhcp.conf
. Here is an example of the necessary attributes for DHCP with TFTP enabled:
'dnsmasq' => {
'enable_dhcp' => true,
'dhcp' => {
'dhcp-authoritative' => nil,
'dhcp-range' => 'eth0,10.0.0.10,10.0.0.100,12h',
'dhcp-option' => '3', #turns off everything except basic DHCP
'domain' => 'lab.atx',
'interface' => 'eth0',
'dhcp-boot' => 'pxelinux.0',
'enable-tftp' => nil,
'tftp-root' => '/var/lib/tftpboot',
'tftp-secure' => nil
}
}
dns
Includes the default
and manage_hostsfile
recipes, then writes the content of the node[:dnsmasq][:dns]
attribute hash to /etc/dnsmasq.d/dns.conf
.
manage_hostsfile
Loads the dnsmasq
data bag managed_hosts
item and merges it with any nodes in the [:dnsmasq][:managed_hosts]
attribute, then writes them out to /etc/hosts/
via the hosts_file
cookbook.
Usage
Data Bag
If you need manage your DNS hosts you may use the dnsmasq
data bag managed_hosts
item. It takes the form:
{
"id": "managed_hosts",
"maps": {
"192.168.0.100": "www.google.com",
"192.168.0.101": ["www.yahoo.com", "www.altavista.com"]
}
}
Attributes
[:dnsmasq][:enable_dns]
whether to enable the DNS service, default istrue
[:dnsmasq][:enable_dhcp]
whether to enabled the DHCP service, default isfalse
[:dnsmasq][:managed_hosts]
hash of IPs and hostname/array of hostnames for themanage_hostfile
recipe, default is empty[:dnsmasq][:managed_hosts_bag]
name of the data bag item, default ismanaged_hosts
[:dnsmasq][:dhcp]
= hash of settings and values for the/etc/dnsmasq.d/dhcp.conf
, default is empty[:dnsmasq][:dhcp_options]
= list of options to be added to the/etc/dnsmasq.d/dhcp.conf
(ie.['dhcp-host=80:ee:73:0a:fa:d9,crushinator,10.0.0.11']
), default is empty.[:dnsmasq][:dns]
hash of settings and values for the/etc/dnsmasq.d/dns.conf
, defaults are
{
'no-poll' => nil,
'no-resolv' => nil,
'server' => '127.0.0.1'
}
[:dnsmasq][:dns_options]
= list of options to be added to the/etc/dnsmasq.d/dns.conf
, default is empty.
Testing
Please refer to the TESTING file to see instructions for testing this cookbook.
Contributors
This project exists thanks to all the people who contribute. (opens in a new tab)
Backers
Thank you to all our backers!
Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website.