aboutsummaryrefslogtreecommitdiff
path: root/manifests
diff options
context:
space:
mode:
Diffstat (limited to 'manifests')
-rw-r--r--manifests/subsystem/modprobe/module.pp35
-rw-r--r--manifests/subsystem/sensors.pp49
2 files changed, 46 insertions, 38 deletions
diff --git a/manifests/subsystem/modprobe/module.pp b/manifests/subsystem/modprobe/module.pp
new file mode 100644
index 0000000..21ec4ed
--- /dev/null
+++ b/manifests/subsystem/modprobe/module.pp
@@ -0,0 +1,35 @@
+#
+# Handles Linux kernel module loading.
+#
+# Module loading is implemented both for SysV and systemd based systems, to
+# ensure this module is managed in either case.
+#
+# It also remains to be tested whether _both_ /etc/modules and /etc/modules-load.d
+# are processed by recent systemd-based Debian systems; or if there are
+# inconsistencies between the implementation and the documentation:
+#
+# https://wiki.debian.org/Modules#Automatic_loading_of_modules
+#
+# Anyway, having this configuration in both places does not seem to hurt (much).
+#
+# Check also https://wiki.archlinux.org/title/Kernel_module#Automatic_module_loading
+# https://unix.stackexchange.com/questions/189670/whats-the-difference-of-etc-modules-load-d-and-etc-modules
+define nodo::subsystem::modprobe::module(
+ $ensure = 'present',
+){
+ # Drivetemp module loading for systems using SysV -- /etc/modules - modules(5)
+ file_line { "etc-modules-${name}":
+ path => "/etc/modules",
+ line => "${name}",
+ ensure => $ensure,
+ }
+
+ # Drivetemp module loading using systemd's /etc/modules-load.d/ - modules-load.d(5)
+ file { "/etc/modules-load.d/${name}.conf":
+ ensure => $ensure,
+ owner => root,
+ group => root,
+ mode => '0644',
+ content => "${name}\n",
+ }
+}
diff --git a/manifests/subsystem/sensors.pp b/manifests/subsystem/sensors.pp
index caa99ef..9b50d9b 100644
--- a/manifests/subsystem/sensors.pp
+++ b/manifests/subsystem/sensors.pp
@@ -3,7 +3,7 @@ class nodo::subsystem::sensors {
# SMART monitoring
#
- $smartmontools = lookup('nodo::smartmontools', undef, undef, true)
+ $smartmontools = lookup('nodo::sensors::smartmontools', undef, undef, true)
if $smartmontools == true {
class { 'smartmontools': }
@@ -13,17 +13,19 @@ class nodo::subsystem::sensors {
# LM Sensors
#
+ $lm_sensors = lookup('nodo::sensors::lm_sensors', undef, undef, true)
+
package { [
'lm-sensors',
]:
- ensure => present,
+ ensure => $lm_sensors,
}
#
# hddtemp
#
- # Deprecated in favor of drivetemp
+ # Deprecated in favor of drivetemp:
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1002484
package { [
'hddtemp',
@@ -39,43 +41,14 @@ class nodo::subsystem::sensors {
#
# drivetemp
#
- # References: https://www.baeldung.com/linux/hdd-ssd-temperature
- # https://askubuntu.com/questions/1426482/tool-to-monitor-hdd-temperature-in-ubuntu-server-22-04
- # https://wiki.archlinux.org/title/Lm_sensors#S.M.A.R.T._drive_temperature
- # https://github.com/philipl/drivetemp
- #
- # We'll implement drive temp module loading both for SysV and systemd based
- # systems, to ensure this module is managed in either case.
- #
- # It also remains to be tested whether _both_ /etc/modules and /etc/modules-load.d
- # are processed by recent systemd-based Debian systems; or if there are
- # inconsistencies between the implementation and the documentation:
- #
- # https://wiki.debian.org/Modules#Automatic_loading_of_modules
- #
- # Anyway, having this configuration in both places does not seem to hurt (much).
- #
- # Check also https://wiki.archlinux.org/title/Kernel_module#Automatic_module_loading
- # https://unix.stackexchange.com/questions/189670/whats-the-difference-of-etc-modules-load-d-and-etc-modules
- #
- # FIXME: this logic should be moved to a nodo::subsystem::modprobe::module definition.
- #
+ # https://www.baeldung.com/linux/hdd-ssd-temperature
+ # https://askubuntu.com/questions/1426482/tool-to-monitor-hdd-temperature-in-ubuntu-server-22-04
+ # https://wiki.archlinux.org/title/Lm_sensors#S.M.A.R.T._drive_temperature
+ # https://github.com/philipl/drivetemp
- $drivetemp = lookup('nodo::drivetemp', undef, undef, 'present')
+ $drivetemp = lookup('nodo::sensors::drivetemp', undef, undef, 'present')
- # Drivetemp module loading for systems using SysV -- /etc/modules - modules(5)
- file_line { 'etc-modules-drivetemp':
- path => "/etc/modules",
- line => "drivetemp",
+ nodo::subsystem::modprobe::module { 'drivetemp':
ensure => $drivetemp,
}
-
- # Drivetemp module loading using systemd's /etc/modules-load.d/ - modules-load.d(5)
- file { '/etc/modules-load.d/drivetemp.conf':
- ensure => $drivetemp,
- owner => root,
- group => root,
- mode => '0644',
- content => "drivetemp\n",
- }
}