38 lines
865 B
ObjectPascal
38 lines
865 B
ObjectPascal
|
# Class to install and configure ISC Kea DHCP service
|
||
|
#
|
||
|
# [*ensure*]
|
||
|
# present or absent. Default: present
|
||
|
#
|
||
|
# [*api_password*]
|
||
|
# (Sensitive) String API password.
|
||
|
#
|
||
|
class kea (
|
||
|
String $ensure = 'present',
|
||
|
Sensitive[String[1]] $api_password,
|
||
|
) {
|
||
|
case $ensure {
|
||
|
default: {
|
||
|
$package_ensure = 'latest'
|
||
|
$directory_ensure = 'directory'
|
||
|
$link_ensure = 'link'
|
||
|
$service_ensure = 'running'
|
||
|
}
|
||
|
/^(absent|delete|uninstall|remove|unregister)$/: {
|
||
|
$package_ensure = 'absent'
|
||
|
$directory_ensure = 'absent'
|
||
|
$link_ensure = 'absent'
|
||
|
$service_ensure = 'stopped'
|
||
|
}
|
||
|
}
|
||
|
package { 'kea':
|
||
|
ensure => $package_ensure,
|
||
|
}
|
||
|
file_line { 'kea_api_password':
|
||
|
ensure => $ensure,
|
||
|
path => '/etc/kea/kea-api-password',
|
||
|
match => '.*',
|
||
|
line => $api_password,
|
||
|
require => Package['kea'],
|
||
|
}
|
||
|
}
|