]> gitweb.fluxo.info Git - puppet-nodo.git/commitdiff
Fix: nodo::base::physical: replaces hddtemp with drivetemp
authorSilvio Rhatto <rhatto@riseup.net>
Fri, 5 Jul 2024 15:16:36 +0000 (12:16 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Fri, 5 Jul 2024 15:16:36 +0000 (12:16 -0300)
manifests/base/physical.pp

index 1c573885647c41c5ff6d6189fb897745f5720892..1eadbe97561b89d69bf4d2c9fa93790f4999e40e 100644 (file)
@@ -24,7 +24,8 @@ class nodo::base::physical inherits nodo::base::host {
     ensure => $downtimed,
   }
 
-  # Deprecated
+  # Deprecated in favor of drivetemp
+  # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1002484
   package { [
     'hddtemp',
   ]:
@@ -35,4 +36,38 @@ class nodo::base::physical inherits nodo::base::host {
       default  => absent,
     }
   }
+
+  # 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).
+  $drivetemp = lookup('nodo::drivetemp', undef, undef, 'present')
+
+  # Drivetemp: implementation for systems using SysV -- /etc/modules - modules(5)
+  file_line { 'etc-modules-drivetemp':
+    path   => "/etc/modules",
+    line   => "drivetemp",
+    ensure => $drivetemp,
+  }
+
+  # Drivetemp: implementation using systemd's /etc/modules-load.d/ - modules-load.d(5)
+  #
+  # 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
+  # https://wiki.archlinux.org/title/Kernel_module#Automatic_module_loading
+  file { '/etc/modules-load.d/drivetemp.conf':
+    ensure  => $drivetemp,
+    owner   => root,
+    group   => root,
+    mode    => '0644',
+    content => "drivetemp\n",
+  }
 }