diff --git a/dhcp/files/isc_dhcpd.rc b/dhcp/files/isc_dhcpd.rc new file mode 100755 index 0000000..70465da --- /dev/null +++ b/dhcp/files/isc_dhcpd.rc @@ -0,0 +1,14 @@ +#!/bin/sh + +daemon="/usr/local/sbin/dhcpd" +daemon_flags="-q" + +. /etc/rc.d/rc.subr + +rc_reload=NO + +rc_pre() { + touch /var/db/dhcpd.leases +} + +rc_cmd $1 diff --git a/dhcp/manifests/init.pp b/dhcp/manifests/init.pp index e1a8b1f..1422827 100644 --- a/dhcp/manifests/init.pp +++ b/dhcp/manifests/init.pp @@ -34,10 +34,24 @@ class dhcp::server::common { before => Service["dhcpd"], } + if $operatingsystem == "OpenBSD" and $operatingsystemrelease !~ /4\.[1-8]/ { + file { "/etc/rc.d/isc_dhcpd": + ensure => present, + mode => 0555, + owner => "root", + group => "bin", + source => "puppet:///modules/dhcp/isc_dhcpd.rc", + before => Service["dhcpd"], + } + } + service { "dhcpd": name => $operatingsystem ? { Debian => "dhcp3-server", - OpenBSD => "isc-dhcpd", + OpenBSD => $operatingsystemrelease ? { + /4\.[1-8]/ => "isc-dhcpd", + default => "isc_dhcpd", + }, Ubuntu => "dhcp3-server", default => "dhcpd", },