resolv_conf
Table of Contents
- Overview
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with resolv_conf
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Development - Guide for contributing to the module
Overview
Manage the /etc/resolv.conf
on Linux and FreeBSD.
Module Description
The module manages the DNS resolver configuration file. It allows setting the values for the nameserver
, domain
, search
, sortlist
and options
confguration settings. The following restrictions are enforced by the module:
- Up to 3 nameservers may be listed.
- Up to 6 items may be included in the search list.
- Up to 10 items may be included in the sortlist.
- The domain and search keywords are mutually exclusive.
Setup
What resolv_conf affects
The module creates and manages the content of the /etc/resolv.conf
file. This affects the way the host is able to map hostname to IP addresses and vice versa.
Setup Requirements
The module uses the Puppet stdlib
module.
Beginning with resolv_conf
Declare the class to create a configuration that uses only a local nameserver on 127.0.0.1
.
class { 'resolv_conf': }
Usage
You can use class parameters to use a customized configuration.
class { 'resolv_conf':
nameserves => [ '9.9.9.9', ],
}
You can also use Hiera to create this configuration.
resolv_conf::nameservers:
- '9.9.9.9'
Specify a remote nameserver and use local domain for unqualified hostnames
The following configuration will configure a remote nameserver and use the name of the local domain when unqualified hostnames are queried.
class { 'resolv_conf':
nameservers => [ '9.9.9.9', ],
domain => $::domain,
}
If your host is based in the example.net
domain, then a lookup for the hostname server
will query the nameserver for server.example.net
.
Specify nameservers & options
This setup creates a configuration file with the given nameservers and will also set additional opions to enable nameserver rotation and set a specific timeout.
class { 'resolv_conf':
nameservers => [ '8.8.8.8', '8.8.4.4', ],
options => [ 'rotate', 'timeout:2', ],
}
Prefer a local nameserver
The following setup will create a configuration where the nameserver at 127.0.0.1
is queried first and only then the additional nameservers are used.
class { 'resolv_conf':
nameservers => [ '8.8.8.8', '8.8.4.4', ],
prepend_local_nameserver => true,
}
Note: This module does not configure a local nameserver that will answer queries on 127.0.0.1
. You will have to use a different Puppet module to manage the nameserver.
Reference
See REFERENCE.md
Development
You may open Github issues for this module if you need additional options currently not available.
Feel free to send pull requests for new features.