Revision d66778ce
Added by Michael Moll almost 9 years ago
manifests/init.pp | ||
---|---|---|
$option_static_route = undef,
|
||
$options = undef,
|
||
$authoritative = false,
|
||
$dhcp_root_group = $dhcp::params::root_group
|
||
) inherits dhcp::params {
|
||
|
||
# Incase people set interface instead of interfaces work around
|
||
... | ... | |
$dhcp_interfaces = $interfaces
|
||
}
|
||
|
||
$package_provider = $::operatingsystem ? {
|
||
'darwin' => 'macports',
|
||
default => undef,
|
||
}
|
||
|
||
package { $packagename:
|
||
ensure => installed,
|
||
provider => $package_provider,
|
||
}
|
||
|
||
file { $dhcp_dir:
|
||
... | ... | |
content => template('dhcp/redhat/sysconfig-dhcpd'),
|
||
}
|
||
}
|
||
/^(FreeBSD|DragonFly)$/: {
|
||
$interfaces_line = join($dhcp_interfaces, ' ')
|
||
augeas { 'set listen interfaces':
|
||
context => '/files/etc/rc.conf',
|
||
changes => "set dhcpd_ifaces '\"${interfaces_line}\"'",
|
||
before => Package[$packagename],
|
||
notify => Service[$servicename],
|
||
}
|
||
}
|
||
default: {
|
||
fail("Unsupported OS family ${::osfamily}")
|
||
}
|
||
}
|
||
|
||
concat { "${dhcp_dir}/dhcpd.conf":
|
||
owner => 'root',
|
||
group => 'root',
|
||
group => $dhcp_root_group,
|
||
mode => '0644',
|
||
require => Package[$packagename],
|
||
notify => Service[$servicename],
|
||
... | ... | |
|
||
concat { "${dhcp_dir}/dhcpd.hosts":
|
||
owner => 'root',
|
||
group => 'root',
|
||
group => $dhcp_root_group,
|
||
mode => '0644',
|
||
require => Package[$packagename],
|
||
notify => Service[$servicename],
|
manifests/params.pp | ||
---|---|---|
|
||
$dnsdomain = [$::domain]
|
||
|
||
$dhcp_dir = $::osfamily ? {
|
||
'RedHat' => '/etc/dhcp',
|
||
'Debian' => '/etc/dhcp',
|
||
'darwin' => '/opt/local/etc/dhcp',
|
||
default => '/etc/dhcp',
|
||
}
|
||
case $::osfamily {
|
||
'Debian': {
|
||
$dhcp_dir = '/etc/dhcp'
|
||
$packagename = 'isc-dhcp-server'
|
||
$servicename = 'isc-dhcp-server'
|
||
$root_group = 'root'
|
||
}
|
||
|
||
$packagename = $::osfamily ? {
|
||
'RedHat' => 'dhcp',
|
||
'Debian' => 'isc-dhcp-server',
|
||
'darwin' => 'dhcp',
|
||
default => 'dhcp',
|
||
}
|
||
/^(FreeBSD|DragonFly)$/: {
|
||
$dhcp_dir = '/usr/local/etc'
|
||
$packagename = 'isc-dhcp42-server'
|
||
$servicename = 'isc-dhcpd'
|
||
$root_group = 'wheel'
|
||
}
|
||
|
||
$servicename = $::osfamily ? {
|
||
'RedHat' => 'dhcpd',
|
||
'Debian' => 'isc-dhcp-server',
|
||
'darwin' => 'org.macports.dhcpd',
|
||
default => 'dhcpd',
|
||
}
|
||
'RedHat': {
|
||
$dhcp_dir = '/etc/dhcp'
|
||
$packagename = 'dhcp'
|
||
$servicename = 'dhcpd'
|
||
$root_group = 'root'
|
||
}
|
||
|
||
default: {
|
||
fail("${::hostname}: This module does not support osfamily ${::osfamily}")
|
||
}
|
||
}
|
||
}
|
metadata.json | ||
---|---|---|
"operatingsystem": "Debian",
|
||
"operatingsystemrelease": [
|
||
"6",
|
||
"7"
|
||
"7",
|
||
"8"
|
||
]
|
||
},
|
||
{
|
||
... | ... | |
"12.04",
|
||
"14.04"
|
||
]
|
||
},
|
||
{
|
||
"operatingsystem": "FreeBSD",
|
||
"operatingsystemrelease": [
|
||
"9",
|
||
"10"
|
||
]
|
||
},
|
||
{
|
||
"operatingsystem": "DragonFly",
|
||
"operatingsystemrelease": [
|
||
"3.6",
|
||
"3.8",
|
||
"4"
|
||
]
|
||
}
|
||
]
|
||
}
|
spec/classes/init_spec.rb | ||
---|---|---|
|
||
describe 'dhcp' do
|
||
context 'supported operating systems' do
|
||
['Debian', 'RedHat'].each do |osfamily|
|
||
['Debian', 'RedHat', 'FreeBSD'].each do |osfamily|
|
||
conf_path = (osfamily == 'FreeBSD') ? '/usr/local/etc' : '/etc/dhcp'
|
||
describe "dhcp class without any parameters on #{osfamily}" do
|
||
let(:params) do {
|
||
:interfaces => ['eth0'],
|
||
... | ... | |
'option fqdn.rcode2 255;',
|
||
'option pxegrub code 150 = text ;',
|
||
'log-facility local7;',
|
||
'include "/etc/dhcp/dhcpd.hosts";',
|
||
"include \"#{conf_path}/dhcpd.hosts\";",
|
||
])
|
||
}
|
||
end
|
||
... | ... | |
'next-server 10.0.0.5;',
|
||
'filename "mypxefilename";',
|
||
'log-facility local7;',
|
||
'include "/etc/dhcp/dhcpd.hosts";',
|
||
"include \"#{conf_path}/dhcpd.hosts\";",
|
||
])
|
||
}
|
||
end
|
Also available in: Unified diff
Support FreeBSD