From 745b2537e79eca59f8e9f2f15230482fcdf140aa Mon Sep 17 00:00:00 2001 From: Raphaƫl Pinson Date: Thu, 11 Apr 2013 11:54:50 +0200 Subject: Refactor module * Use a top dhcp class with a $server boolean param * Refactor the dhcp::class to use packages/config/service classes * Don't use inheritance, put everything in dhcp::params --- manifests/init.pp | 7 +++++ manifests/params.pp | 7 +++++ manifests/server.pp | 6 ++-- manifests/server/base.pp | 65 -------------------------------------------- manifests/server/config.pp | 43 +++++++++++++++++++++++++++++ manifests/server/debian.pp | 21 -------------- manifests/server/packages.pp | 8 ++++++ manifests/server/service.pp | 10 +++++++ 8 files changed, 78 insertions(+), 89 deletions(-) create mode 100644 manifests/init.pp delete mode 100644 manifests/server/base.pp create mode 100644 manifests/server/config.pp delete mode 100644 manifests/server/debian.pp create mode 100644 manifests/server/packages.pp create mode 100644 manifests/server/service.pp (limited to 'manifests') diff --git a/manifests/init.pp b/manifests/init.pp new file mode 100644 index 0000000..8a14b13 --- /dev/null +++ b/manifests/init.pp @@ -0,0 +1,7 @@ +class dhcp ( + $server = true, +) { + if $server { + class { '::dhcp::server': } + } +} diff --git a/manifests/params.pp b/manifests/params.pp index d2ba584..20fbcd2 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -17,6 +17,13 @@ class dhcp::params { lenny => 'dhcp3-server', squeeze => 'isc-dhcp-server', } + + $service_pattern = $::lsbdistcodename? { + lenny => '/usr/sbin/dhcpd3', + squeeze => '/usr/sbin/dhcpd', + } + + $base_template = 'dhcp/dhcpd.conf.debian.erb' } default: { diff --git a/manifests/server.pp b/manifests/server.pp index 6bdf51f..779b305 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -33,7 +33,7 @@ node "dhcp.toto.ltd" { */ class dhcp::server { - case $::operatingsystem { - Debian: { include dhcp::server::debian } - } + class { '::dhcp::server::packages': } -> + class { '::dhcp::server::config': } ~> + class { '::dhcp::server::service': } } diff --git a/manifests/server/base.pp b/manifests/server/base.pp deleted file mode 100644 index 4e7d645..0000000 --- a/manifests/server/base.pp +++ /dev/null @@ -1,65 +0,0 @@ -# = Class dhcp::server::base -# -# Do NOT include this class - it won't work at all. -# Set variables for package name and so on. -# This class should be inherited in dhcp::server::$operatingsystem. -# -class dhcp::server::base { - - include dhcp::params - include concat::setup - - package {'dhcp-server': - ensure => present, - name => $dhcp::params::srv_dhcpd, - } - - service {'dhcpd': - ensure => running, - name => $dhcp::params::srv_dhcpd, - enable => true, - require => Package['dhcp-server'], - } - - concat {"${dhcp::params::config_dir}/dhcpd.conf": - owner => root, - group => root, - mode => '0644', - } - - concat::fragment {'00.dhcp.server.base': - ensure => present, - target => "${dhcp::params::config_dir}/dhcpd.conf", - require => Package['dhcp-server'], - notify => Service['dhcpd'], - } - - file {"${dhcp::params::config_dir}/dhcpd.conf.d": - ensure => directory, - mode => '0700', - recurse => true, - purge => true, - force => true, - source => 'puppet:///modules/dhcp/empty' - } - - file {"${dhcp::params::config_dir}/subnets": - ensure => directory, - recurse => true, - purge => true, - force => true, - source => 'puppet:///modules/dhcp/empty', - require => Package['dhcp-server'], - notify => Service['dhcpd'], - } - - file {"${dhcp::params::config_dir}/hosts.d": - ensure => directory, - recurse => true, - purge => true, - force => true, - source => 'puppet:///modules/dhcp/empty', - require => Package['dhcp-server'], - } - -} diff --git a/manifests/server/config.pp b/manifests/server/config.pp new file mode 100644 index 0000000..c37d044 --- /dev/null +++ b/manifests/server/config.pp @@ -0,0 +1,43 @@ +class dhcp::server::config { + include ::dhcp::params + include ::concat::setup + + concat {"${dhcp::params::config_dir}/dhcpd.conf": + owner => root, + group => root, + mode => '0644', + } + + concat::fragment {'00.dhcp.server.base': + ensure => present, + target => "${dhcp::params::config_dir}/dhcpd.conf", + content => template($dhcp::params::base_template), + } + + file {"${dhcp::params::config_dir}/dhcpd.conf.d": + ensure => directory, + mode => '0700', + recurse => true, + purge => true, + force => true, + source => "puppet:///modules/${module_name}/empty" + } + + file {"${dhcp::params::config_dir}/subnets": + ensure => directory, + recurse => true, + purge => true, + force => true, + source => "puppet:///modules/${module_name}/empty", + require => Package['dhcp-server'], + notify => Service['dhcpd'], + } + + file {"${dhcp::params::config_dir}/hosts.d": + ensure => directory, + recurse => true, + purge => true, + force => true, + source => "puppet:///modules/${module_name}/empty", + } +} diff --git a/manifests/server/debian.pp b/manifests/server/debian.pp deleted file mode 100644 index 5d23bbe..0000000 --- a/manifests/server/debian.pp +++ /dev/null @@ -1,21 +0,0 @@ -# = Class: dhcp::server::debian -# -# Installs a dhcp server on debian system. -# -# This class should not be included as is, -# please include "dhcp::server" instead. -# -class dhcp::server::debian inherits dhcp::server::base { - - Concat::Fragment['00.dhcp.server.base'] { - content => template('dhcp/dhcpd.conf.debian.erb'), - } - - Service['dhcpd'] { - pattern => $::lsbdistcodename ? { - squeeze => '/usr/sbin/dhcpd', - lenny => '/usr/sbin/dhcpd3', - } - } - -} diff --git a/manifests/server/packages.pp b/manifests/server/packages.pp new file mode 100644 index 0000000..34751e8 --- /dev/null +++ b/manifests/server/packages.pp @@ -0,0 +1,8 @@ +class dhcp::server::packages { + include ::dhcp::params + + package {'dhcp-server': + ensure => present, + name => $dhcp::params::srv_dhcpd, + } +} diff --git a/manifests/server/service.pp b/manifests/server/service.pp new file mode 100644 index 0000000..d531a7d --- /dev/null +++ b/manifests/server/service.pp @@ -0,0 +1,10 @@ +class dhcp::server::service { + include ::dhcp::params + + service {'dhcpd': + ensure => running, + name => $dhcp::params::srv_dhcpd, + enable => true, + pattern => $dhcp::params::service_pattern, + } +} -- cgit v1.2.3