Defined Type: kmod::load
- Defined in:
- manifests/load.pp
Overview
Definition: kmod::load
Manage a kernel module in /etc/modules.
Parameters:
-
ensure: present/absent;
-
file: optionally, set the file where the stanza is written. Not
used for systems running systemd.
Example usage:
kmod::load { 'sha256': }
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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'manifests/load.pp', line 15
define kmod::load(
$ensure=present,
$file='/etc/modules',
) {
case $ensure {
'present': {
case $::osfamily {
'Debian': {
$changes = "clear '${name}'"
}
'Suse': {
$changes = "set MODULES_LOADED_ON_BOOT/value[.='${name}'] '${name}'"
}
default: { }
}
exec { "modprobe ${name}":
path => '/bin:/sbin:/usr/bin:/usr/sbin',
unless => "egrep -q '^${name} ' /proc/modules",
}
}
'absent': {
case $::osfamily {
'Debian': {
$changes = "rm '${name}'"
}
'Suse': {
$changes = "rm MODULES_LOADED_ON_BOOT/value[.='${name}']"
}
default: { }
}
exec { "modprobe -r ${name}":
path => '/bin:/sbin:/usr/bin:/usr/sbin',
onlyif => "egrep -q '^${name} ' /proc/modules",
}
}
default: { fail "${module_name}: unknown ensure value ${ensure}" }
}
if $facts['service_provider'] == 'systemd' {
file { "/etc/modules-load.d/${name}.conf":
ensure => $ensure,
mode => '0644',
content => "# This file is managed by the puppet kmod module.\n${name}\n",
}
} else {
case $::osfamily {
'Debian': {
augeas {"Manage ${name} in ${file}":
incl => $file,
lens => 'Modules.lns',
changes => $changes,
}
}
'RedHat': {
file { "/etc/sysconfig/modules/${name}.modules":
ensure => $ensure,
mode => '0755',
content => template('kmod/redhat.modprobe.erb'),
}
}
'Suse': {
$kernelfile = $file ? {
'/etc/modules' => '/etc/sysconfig/kernel',
default => $file,
}
augeas { "sysconfig_kernel_MODULES_LOADED_ON_BOOT_${name}":
lens => 'Shellvars_list.lns',
incl => $kernelfile,
changes => $changes,
}
}
default: {
fail "${module_name}: Unknown OS family ${::osfamily}"
}
}
}
}
|