puppet-prod/site/profiles/manifests/dhcp/server.pp

46 lines
1.1 KiB
Puppet

# profiles::dhcp::server
class profiles::dhcp::server (
Array[Stdlib::Host] $ntpservers = [
'0.au.pool.ntp.org',
'1.au.pool.ntp.org',
'2.au.pool.ntp.org',
'3.au.pool.ntp.org'
],
Array[String] $interfaces = ['eth0'],
Integer $default_lease_time = 86400,
Array[String] $globaloptions = [],
Hash $pools = {},
Hash $classes = {},
Boolean $empty_local_pool = false
){
class { 'dhcp':
service_ensure => running,
interfaces => $interfaces,
ntpservers => $ntpservers,
default_lease_time => $default_lease_time,
globaloptions => $globaloptions
}
# if pools, import them
$pools.each | $name, $data | {
dhcp::pool { $name:
* => $data,
}
}
# if classes, import them
$classes.each | $name, $data | {
dhcp::dhcp_class { $name:
* => $data,
}
}
if $empty_local_pool {
dhcp::pool {'local':
network => $facts['networking']['interfaces'][$network_primary_interface]['network'],
mask => $facts['networking']['interfaces'][$network_primary_interface]['netmask'],
}
}
}