aboutsummaryrefslogtreecommitdiff
path: root/manifests/server.pp
blob: d4bbc309b626c3d21dfbde759b4ef10ae804415b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# Class: dhcp::server
#
# Installs and configures a DHCP server.
#
# Parameters:
#   ['ddns_update']   : ddns-update-style option (defaults to 'none')
#   ['authoritative'] : a boolean setting whether the DHCP server is
#                       authoritative (defaults to false)
#   ['log_facility']  : string containing syslog log levels
#                       (defaults to local7)
#   ['opts']          : an array of DHCPD valid options
#
# Sample usage:
#   node "dhcp.toto.ltd" {
#     class { 'dhcp::server':
#       opts => ['domain-name "toto.ltd"',
#                'domain-name-servers 192.168.21.1'],
#     }
#
#     dhcp::subnet {"10.27.20.0":
#       ensure     => present,
#       broadcast  => "10.27.20.255",
#       other_opts => ['filename "pxelinux.0";', 'next-server 10.27.10.1;'],
#     }
#
#     dhcp::host {"titi-eth0":
#       ensure        => present,
#       mac           => "0e:18:fa:fe:d9:00",
#       subnet        => "10.27.20.0",
#       fixed_address => "10.27.10.52",
#     }
#   }
#
# Requires:
#   - puppetlabs/stdlib
#   - ripienaar/concat
#
class dhcp::server (
  $ddns_update = 'none',
  $authoritative = false,
  $log_facility = 'local7',
  $opts = [],
) {
  class { '::dhcp::server::packages': } ->
  class { '::dhcp::server::config': } ~>
  class { '::dhcp::server::service': }
}