diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-02-20 23:36:17 +0100 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-02-28 12:59:31 +0100 |
commit | 0087c65cf6c1a25a2ad91630115903cab82eb21f (patch) | |
tree | 6f1e4e4ee71a0f6b221463f17da7031ac9d86eae /manifests/dhcpd.pp | |
parent | Made dns_record autoreport more forgiving. (diff) | |
download | profiles-0087c65cf6c1a25a2ad91630115903cab82eb21f.tar.gz profiles-0087c65cf6c1a25a2ad91630115903cab82eb21f.tar.xz |
Add module dhcpd.
Diffstat (limited to 'manifests/dhcpd.pp')
-rw-r--r-- | manifests/dhcpd.pp | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/manifests/dhcpd.pp b/manifests/dhcpd.pp new file mode 100644 index 0000000..bf3f965 --- /dev/null +++ b/manifests/dhcpd.pp @@ -0,0 +1,67 @@ +class profiles::dhcpd ( +) { + + $keyname = 'dhcp' + $key = lookup("dns::keys")[$keyname] + + $menu = 'Raspberry Pi Boot' + $menu_len = length($menu) + + class { 'dhcp': + service_ensure => running, + dnsdomain => [ + 'dynamic.adrift.space', + '1.0.10.in-addr.arpa', + ], + dnssearchdomains => [ + 'adrift.space', + ], + nameservers => [ '10.0.0.40', ], + nameservers_ipv6 => [ '2001:9b1:eff:a600:2d8:61ff:fe51:d925', ], + interfaces => [ $facts['networking']['primary'], ], + dnsupdatekey => "${dns::dnsdir}/${keyname}.key", + dnskeyname => $keyname, + # require => Dns::Key[$keyname], + globaloptions => [ + # Declare vendor extension PXEClient + 'space PXEClient', + 'PXEClient.discovery-control code 6 = unsigned integer 8', + 'PXEClient.menu-prompt code 10 = { unsigned integer 8, text }', + 'PXEClient.boot-menu code 9 = { unsigned integer 16, unsigned integer 8, text }', + + # Instanciate vendor extension PXEClient + 'PXEClient.discovery-control 3', + 'PXEClient.menu-prompt 0 "PXE"', + "PXEClient.boot-menu 0 ${menu_len} \"${menu}\"", + ], + # extra_config => [ + # 'allow booting', + # 'allow bootp', + # ], + } + + dhcp::dhcp_class { 'vendor-classes': + parameters => [ + 'match option vendor-class-identifier', + ] + } + + dhcp::pool { 'pool': + network => '10.0.0.0', + mask => '255.255.254.0', + range => [ '10.0.1.10 10.0.1.250', ], + gateway => '10.0.0.1', + pxeserver => '10.0.0.40', + options => [ + 'vendor-class-identifier "PXEClient"', + ], + parameters => [ + 'vendor-option-space PXEClient', + ], + } + + user { 'dhcp': + membership => 'minimum', + groups => [ $dns::group, ], + } +} |