diff --git a/resolver/manifests/init.pp b/resolver/manifests/init.pp new file mode 100644 index 0000000..08e3f4e --- /dev/null +++ b/resolver/manifests/init.pp @@ -0,0 +1,31 @@ +# Class: resolver +# +# This class handles configuring /etc/resolv.conf +# +# Parameters: +# $domainname: The default domain +# +# $searchpath: Array of domains to search +# +# $nameservers: List of nameservers to search +# +# Actions: +# Configures the /etc/resolv.conf file according to parameters +# +# Requires: +# +# Sample Usage: +# class { 'resolver': +# domainname => "mydomain", +# searchpath => ['mydomain', 'test.mydomain'], +# nameservers => ['192.168.1.100', '192.168.1.101', '192.168.1.102'], +# } +# +class resolver($domainname = "", $searchpath = "", $nameservers ) { + file { "/etc/resolv.conf": + owner => root, + group => root, + mode => 644, + content => template("resolver/resolv.conf.erb"), + } +} diff --git a/resolver/templates/resolv.conf.erb b/resolver/templates/resolv.conf.erb new file mode 100644 index 0000000..aaf5f51 --- /dev/null +++ b/resolver/templates/resolv.conf.erb @@ -0,0 +1,6 @@ +<% if !domainname.empty? %>domain <%= domainname %> +<% end -%> +<% if !searchpath.empty? %>search <%= searchpath.join(" ") %> +<% end -%> +<% nameservers.each do |ns| %>nameserver <%= ns %> +<% end -%>