Affected Puppet, Ruby, OS and module versions/distributions
- Puppet: 8.10.0-1bookworm
- Ruby: ruby 3.2.5 (2024-07-26 revision 31d0f1a2e7) [x86_64-linux]
- Distribution: Debian 12
- Module version: 3.1.1
How to reproduce (e.g Puppet code you use)
class { 'icingadb::redis':
manage_repos => false,
bind => ['127.0.0.1', '::1'],
port => 6380,
}
Upgrade from 7.0.15-1+debian12 => 7.2.6-2+debian12
What are you seeing
Icingadb-redis won't start with the following error:
... systemd[1]: Starting icingadb-redis.service - Redis database for Icinga DB...
... icingadb-redis-server[3754696]: *** FATAL CONFIG FILE ERROR (Redis 7.2.6) ***
... icingadb-redis-server[3754696]: Can't open the log file: Read-only file system
... systemd[1]: icingadb-redis.service: Main process exited, code=exited, status=1/FAILURE
... systemd[1]: icingadb-redis.service: Failed with result 'exit-code'.
... systemd[1]: Failed to start icingadb-redis.service - Redis database for Icinga DB.
What behaviour did you expect instead
icingadb-redis to start successfully after an upgrade.
Output log
See above.
Any additional information you'd like to impart
According to this forum post, the latest icingdb-redis package took out ReadWritePaths=-/var/log/icingadb-redis from the service unit file shipped with the package and set logfile="" in the default configuration file.
This module uses puppet-redis, which in turn expects a log file to be set - I don't think there's a way to override this. This module also sets manage_service_file => false, so the service unit as shipped is used.
We've worked around this by adding a drop-in file via our profile class:
systemd::dropin_file { 'redis-logfile.conf':
unit => 'icingadb-redis.service',
content => "[Service]\nReadWritePaths=-/var/log/icingadb-redis\n",
}
I wasn't sure what the best place for this was, but I thought I'd open an issue here for visibility. There may be a way of working around this in a different fashion with the modules as-is, but this is what we did.
Affected Puppet, Ruby, OS and module versions/distributions
How to reproduce (e.g Puppet code you use)
Upgrade from 7.0.15-1+debian12 => 7.2.6-2+debian12
What are you seeing
Icingadb-redis won't start with the following error:
What behaviour did you expect instead
icingadb-redis to start successfully after an upgrade.
Output log
See above.
Any additional information you'd like to impart
According to this forum post, the latest icingdb-redis package took out
ReadWritePaths=-/var/log/icingadb-redisfrom the service unit file shipped with the package and setlogfile=""in the default configuration file.This module uses puppet-redis, which in turn expects a log file to be set - I don't think there's a way to override this. This module also sets
manage_service_file => false, so the service unit as shipped is used.We've worked around this by adding a drop-in file via our profile class:
I wasn't sure what the best place for this was, but I thought I'd open an issue here for visibility. There may be a way of working around this in a different fashion with the modules as-is, but this is what we did.