Defined Type: psick::kmod::module
- Defined in:
- manifests/kmod/module.pp
Summary
Manages loading and configuration of a Linux kernel moduleOverview
This define manages the loading of a module, via modprobe and its configuration in /etc/modprobe.d/$title.conf
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 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 |
# File 'manifests/kmod/module.pp', line 8
define psick::kmod::module (
Enum['present','absent'] $ensure = 'present',
String $module = $title,
Optional[String] $conf_source = undef,
Optional[String] $conf_content = undef,
Hash $conf_options = {},
Boolean $boot_load_configure = true,
) {
if $conf_source or $conf_content {
file { "/etc/modprobe.d/${title}.conf":
ensure => $ensure,
source => $conf_source,
content => $conf_content,
}
}
case $ensure {
'present': {
exec { "modprobe ${title}":
command => "modprobe ${module}",
path => '/bin:/sbin:/usr/bin:/usr/sbin',
unless => "egrep -q '^${module} ' /proc/modules",
}
}
'absent': {
exec { "modprobe -r ${title}":
command => "modprobe -r ${module}",
path => '/bin:/sbin:/usr/bin:/usr/sbin',
onlyif => "egrep -q '^${module} ' /proc/modules",
}
}
default: {}
}
if $boot_load_configure {
if $facts['service_provider'] == 'systemd' {
file { "/etc/modules-load.d/${title}.conf":
ensure => $ensure,
mode => '0644',
content => "# File is managed by Puppet via psick::kmod::module \n${module}\n",
}
} else {
case $facts['os']['family'] {
'Debian': {
file_line { "kernel load ${title}":
ensure => $ensure,
path => '/etc/kernel',
line => $module,
match => "^${module}",
}
}
'RedHat': {
file { "/etc/sysconfig/modules/${title}.modules":
ensure => $ensure,
mode => '0755',
content => "#!/bin/bash \nexec /sbin/modprode ${module} > /dev/null 2>&1\n",
}
}
'Suse': {
file_line { "kernel load ${title}":
ensure => $ensure,
path => '/etc/sysconfig/kernel',
line => "MODULES_LOADED_ON_BOOT=${module}",
match => "^MODULES_LOADED_ON_BOOT=${module}",
}
}
default: {}
}
}
}
}
|