# manage dnsmasq as a dns forwarder and dhcp relay class dnsmasq ( Boolean $manage_package = true, Boolean $manage_service = true, String $package_name = 'dnsmasq', String $service_name = 'dnsmasq', Stdlib::Absolutepath $config_file = '/etc/dnsmasq.conf', Stdlib::Absolutepath $config_dir = '/etc/dnsmasq.d', Boolean $purge_config_dir = false, Array[String] $interfaces = [], Array[Stdlib::IP::Address] $listen_addresses = ['127.0.0.1'], Enum['bind-interfaces', 'bind-dynamic', 'none'] $bind_mode = 'bind-interfaces', Boolean $no_resolv = false, Array[String] $servers = [], Hash[String, Array[String]] $forwards = {}, Optional[Integer[0]] $cache_size = undef, Boolean $domain_needed = true, Boolean $bogus_priv = true, Array[String] $dhcp_relays = [], Array[String] $options = [], ) { if $manage_package { package { $package_name: ensure => installed, before => File[$config_file, $config_dir], } } file { $config_dir: ensure => directory, recurse => $purge_config_dir, purge => $purge_config_dir, } file { $config_file: ensure => file, owner => 'root', group => 'root', mode => '0644', content => template('dnsmasq/dnsmasq.conf.erb'), } if $manage_service { service { $service_name: ensure => running, enable => true, subscribe => File[$config_file, $config_dir], } } }