Manage /etc/resolv.conf with puppet.
resolvconf
: Main class.resolvconf::file
: Definition to manage extra files.
The idea is to be able to globally include the resolvconf
class on all nodes.
From there, hiera with puppet 3.x allows to start managing the
/etc/resolv.conf
file's content in a very flexible way.
In site.pp
:
hiera_include('classes')
In hieradata
somewhere :
---
classes:
- '::resolvconf'
resolvconf::header: ''
resolvconf::nameserver:
- '198.51.100.1'
- '198.51.100.2'
resolvconf::search:
- 'foo.example.com'
- 'bar.example.com'
- 'example.com'
This way, only nodes where the Hiera values apply get their /etc/resolv.conf
file modified by Puppet.
Ubuntu allows for file snippets to be used :
resolvconf::file { '/etc/resolvconf/resolv.conf.d/tail':
nameserver => [ '198.51.100.1', '198.51.100.2' ],
}