https://github.com/sous-chefs/dnsmasq
Development repository for the dnsmasq cookbook
https://github.com/sous-chefs/dnsmasq
chef chef-cookbook chef-resource dnsmasq hacktoberfest managed-by-terraform
Last synced: 5 days ago
JSON representation
Development repository for the dnsmasq cookbook
- Host: GitHub
- URL: https://github.com/sous-chefs/dnsmasq
- Owner: sous-chefs
- License: apache-2.0
- Created: 2012-09-04T20:34:29.000Z (over 12 years ago)
- Default Branch: main
- Last Pushed: 2024-12-04T13:53:13.000Z (5 months ago)
- Last Synced: 2025-04-10T20:39:27.916Z (16 days ago)
- Topics: chef, chef-cookbook, chef-resource, dnsmasq, hacktoberfest, managed-by-terraform
- Language: Ruby
- Homepage: https://supermarket.chef.io/cookbooks/dnsmasq
- Size: 139 KB
- Stars: 9
- Watchers: 26
- Forks: 38
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# DNSMasq
[](https://supermarket.chef.io/cookbooks/dnsmasq)
[](https://circleci.com/gh/sous-chefs/dnsmasq)
[](#backers)
[](#sponsors)
[](https://opensource.org/licenses/Apache-2.0)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](https://sous-chefs.org/) or come chat with us on the Chef Community Slack in [#sous-chefs](https://chefcommunity.slack.com/messages/C2V7B88SF).
## 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:
```ruby
'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:
```json
{
"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 is `true`
- `[:dnsmasq][:enable_dhcp]` whether to enabled the DHCP service, default is `false`
- `[:dnsmasq][:managed_hosts]` hash of IPs and hostname/array of hostnames for the `manage_hostfile` recipe, default is empty
- `[:dnsmasq][:managed_hosts_bag]` name of the data bag item, default is `managed_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```ruby
{
'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](TESTING.md) to see instructions for testing this cookbook.
## Contributors
This project exists thanks to all the people who [contribute.](https://opencollective.com/sous-chefs/contributors.svg?width=890&button=false)
### 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.









