diff options
-rw-r--r-- | manifests/base/physical.pp | 24 | ||||
-rw-r--r-- | manifests/role/nas.pp | 7 | ||||
-rw-r--r-- | manifests/subsystem/inception.pp | 2 | ||||
-rw-r--r-- | manifests/subsystem/modprobe/module.pp | 38 | ||||
-rw-r--r-- | manifests/subsystem/sensors.pp | 56 |
5 files changed, 108 insertions, 19 deletions
diff --git a/manifests/base/physical.pp b/manifests/base/physical.pp index 2f63094..035f5c7 100644 --- a/manifests/base/physical.pp +++ b/manifests/base/physical.pp @@ -1,23 +1,17 @@ class nodo::base::physical inherits nodo::base::host { - $smartmontools = lookup('nodo::smartmontools', undef, undef, true) + include nodo::subsystem::sensors - if $smartmontools == true { - class { 'smartmontools': } - } + # Downtime monitoring + # + # Check https://tracker.debian.org/pkg/downtimed + # https://packages.debian.org/bookworm/downtimed + # https://dist.epipe.com/downtimed/ - package { [ 'lm-sensors', ]: - ensure => present, - } + $downtimed = lookup('nodo::downtimed', undef, undef, 'absent') - # Deprecated package { [ - 'hddtemp', + 'downtimed', ]: - ensure => $::lsbdistcodename ? { - 'wheezy' => present, - 'buster' => present, - 'bullseye' => present, - default => absent, - } + ensure => $downtimed, } } diff --git a/manifests/role/nas.pp b/manifests/role/nas.pp index 6f3a800..27d06bd 100644 --- a/manifests/role/nas.pp +++ b/manifests/role/nas.pp @@ -307,9 +307,10 @@ class nodo::role::nas( # $torrent = lookup('nodo::role::nas::torrent', undef, undef, false) - if $torrent == true { - include pyroscope - } + # Pyroscope not being managed right now + #if $torrent == true { + # include pyroscope + #} # # DAAP diff --git a/manifests/subsystem/inception.pp b/manifests/subsystem/inception.pp index d4bb07c..7cd9d0a 100644 --- a/manifests/subsystem/inception.pp +++ b/manifests/subsystem/inception.pp @@ -9,7 +9,7 @@ define nodo::subsystem::inception( user => $name, provider => git, source => "https://git.fluxo.info/${git_dev}/apps", - revision => 'def32ac6684a92d0ea55529a6def6f074bebf8d0', + revision => 'e59e4465dd90943853aba944056e0790c8c746e1', submodules => true, require => [ File["/home/${name}"], User[$name] ], } diff --git a/manifests/subsystem/modprobe/module.pp b/manifests/subsystem/modprobe/module.pp new file mode 100644 index 0000000..21b7398 --- /dev/null +++ b/manifests/subsystem/modprobe/module.pp @@ -0,0 +1,38 @@ +# +# 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 +# +# In the future, this definition can also manage /etc/modprobe.d/ entries. +# +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 new file mode 100644 index 0000000..8a19831 --- /dev/null +++ b/manifests/subsystem/sensors.pp @@ -0,0 +1,56 @@ +class nodo::subsystem::sensors { + # + # SMART monitoring + # + + $smartmontools = lookup('nodo::sensors::smartmontools', undef, undef, 'present') + + if $smartmontools == 'present' { + class { 'smartmontools': } + } + + # + # LM Sensors + # + + $lm_sensors = lookup('nodo::sensors::lm_sensors', undef, undef, 'present') + + package { [ + 'lm-sensors', + ]: + ensure => $lm_sensors, + } + + # + # drivetemp + # + # Just load this driver and lm-sensors will detect sensors automatically. + # + # 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::sensors::drivetemp', undef, undef, 'present') + + nodo::subsystem::modprobe::module { 'drivetemp': + ensure => $drivetemp, + } + + # + # hddtemp + # + + # Deprecated in favor of drivetemp: + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1002484 + package { [ + 'hddtemp', + ]: + ensure => $::lsbdistcodename ? { + 'wheezy' => present, + 'buster' => present, + 'bullseye' => present, + default => absent, + } + } +} |