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 48
|
# Adds a custom udev rule
#
# @api public
#
# @see udev(7)
#
# @attr name [Pattern['^.+\.rules$']]
# The name of the udev rules to create
#
# @param $ensure
# Whether to drop a file or remove it
#
# @param path
# The path to the main systemd settings directory
#
# @param selinux_ignore_defaults
# If Puppet should ignore the default SELinux labels.
#
# @param notify_services
# List of services to notify when this rule is updated
#
# @param rules
# The literal udev rules you want to deploy
#
define systemd::udev::rule (
Array $rules,
Enum['present', 'absent', 'file'] $ensure = 'present',
Stdlib::Absolutepath $path = '/etc/udev/rules.d',
Optional[Variant[Array, String]] $notify_services = [],
Optional[Boolean] $selinux_ignore_defaults = false,
) {
include systemd
$filename = assert_type(Pattern['^.+\.rules$'], $name) |$expected, $actual| {
fail("The \$name should match \'${expected}\', you passed \'${actual}\'")
}
file { $filename:
ensure => $ensure,
owner => 'root',
group => 'root',
mode => '0444',
path => join([$path, $name], '/'),
notify => $notify_services,
selinux_ignore_defaults => $selinux_ignore_defaults,
content => epp("${module_name}/udev_rule.epp", {'rules' => $rules}),
}
}
|