diff --git a/dhcp/manifests/init.pp b/dhcp/manifests/init.pp index 2927f7c..c885548 100644 --- a/dhcp/manifests/init.pp +++ b/dhcp/manifests/init.pp @@ -1,38 +1,46 @@ - # Install common parts of DHCP server # class dhcp::server::common { case $::operatingsystem { "centos","redhat": { - case $::operatingsystemrelease { - /[45]\.[0-9]/: { - $confdir = "/etc" - } - default: { - $confdir = "/etc/dhcp" - } + if versioncmp($::operatingsystemrelease, "6") >= 0 { + $confdir = "/etc/dhcp" + } else { + $confdir = "/etc" } - } - "debian","ubuntu": { - $confdir = "/etc/dhcp3" + $package = "dhcp" + $service = "dhcpd" } "fedora": { $confdir = "/etc/dhcp" + $package = "dhcp" + $service = "dhcpd" + } + "openbsd": { + $confdir = "/etc" + $package = "isc-dhcp-server" + $service = "isc_dhcpd" + } + "ubuntu": { + if versioncmp($::operatingsystemrelease, "12.04") >= 0 { + $confdir = "/etc/dhcp" + $package = "isc-dhcp-server" + $service = "isc-dhcp-server" + } else { + $confdir = "/etc/dhcp3" + $service = "dhcp3-server" + $package = "dhcp3-server" + } } default: { - $confdir = "/etc" + fail("dhcp::server not supported on ${::operatingsystem}") } } package { "dhcp": - name => $::operatingsystem ? { - "debian" => "dhcp3-server", - "ubuntu" => "dhcp3-server", - "openbsd" => "isc-dhcp-server", - default => "dhcp", - }, ensure => installed, + name => $package, } if $::operatingsystem == "OpenBSD" { @@ -47,14 +55,9 @@ class dhcp::server::common { } service { "dhcpd": - name => $::operatingsystem ? { - "debian" => "dhcp3-server", - "ubuntu" => "dhcp3-server", - "openbsd" => "isc_dhcpd", - default => "dhcpd", - }, ensure => running, enable => true, + name => $service, binary => $::operatingsystem ? { "openbsd" => "/usr/local/sbin/dhcpd", default => undef, @@ -170,6 +173,7 @@ class dhcp::server::ldap inherits dhcp::server::common { } + # Configure DHCP relay # # === Parameters @@ -185,7 +189,6 @@ class dhcp::server::ldap inherits dhcp::server::common { # # dhcp::relay { "relay0": interface => "em2", server_addr => "10.20.110.11" } # - define dhcp::relay($interface, $server_addr) { service { $name: