From: Peter Palfrader Date: Sun, 8 Sep 2019 13:46:52 +0000 (+0200) Subject: make a dsa_systemd::linger to enable or disable lingering consistently X-Git-Url: https://git.adam-barratt.org.uk/?a=commitdiff_plain;h=d21ea84dfbbf151fe5cccaf0517a88f4678057b2;p=mirror%2Fdsa-puppet.git make a dsa_systemd::linger to enable or disable lingering consistently --- diff --git a/modules/buildd/manifests/pybuildd.pp b/modules/buildd/manifests/pybuildd.pp index b2c98e265..ebc23e67b 100644 --- a/modules/buildd/manifests/pybuildd.pp +++ b/modules/buildd/manifests/pybuildd.pp @@ -21,13 +21,7 @@ class buildd::pybuildd { group => buildd, owner => buildd, } - file { '/var/lib/systemd/linger': - ensure => directory, - mode => '755', - } - file { "/var/lib/systemd/linger/buildd": - ensure => present, - } + dsa_systemd::linger { 'buildd': } file { '/etc/systemd/journald.conf.d': ensure => directory, mode => '755', diff --git a/modules/dsa_systemd/manifests/init.pp b/modules/dsa_systemd/manifests/init.pp index 5fff2c1a3..2e09b0648 100644 --- a/modules/dsa_systemd/manifests/init.pp +++ b/modules/dsa_systemd/manifests/init.pp @@ -27,4 +27,15 @@ class dsa_systemd { */10 * * * * root /usr/local/sbin/systemd-cleanup-failed | EOF } + + # systemd bug on buster, maybe related to https://github.com/systemd/systemd/issues/12401 + # | root@onionoo-backend-01:~# loginctl enable-linger onionoo + # | Could not enable linger: No such file or directory + # Having the /var/lib/systemd/linger directory exist already enables + # us to just define file resources in dsa_systemd::linger. That won't + # start the user session immediately, but it'll work after a reboot + file { '/var/lib/systemd/linger': + mode => '0755', + ensure => 'directory', + } } diff --git a/modules/dsa_systemd/manifests/linger.pp b/modules/dsa_systemd/manifests/linger.pp new file mode 100644 index 000000000..a10987cd4 --- /dev/null +++ b/modules/dsa_systemd/manifests/linger.pp @@ -0,0 +1,10 @@ +# enable (or disable) lingering for a user +define dsa_systemd::linger( + Enum['present','absent'] $ensure = 'present', +) { + include dsa_systemd + + file { "/var/lib/systemd/linger/${name}": + ensure => $ensure, + } +} diff --git a/modules/roles/manifests/jenkins.pp b/modules/roles/manifests/jenkins.pp index f036d1955..2efd7e0d7 100644 --- a/modules/roles/manifests/jenkins.pp +++ b/modules/roles/manifests/jenkins.pp @@ -12,11 +12,5 @@ class roles::jenkins { key => true, } - file { '/var/lib/systemd/linger': - ensure => directory, - mode => '755', - } - file { '/var/lib/systemd/linger/jenkins': - ensure => present, - } + dsa_systemd::linger { 'jenkins': } } diff --git a/modules/roles/manifests/sreview.pp b/modules/roles/manifests/sreview.pp index 89c01d201..52ec81374 100644 --- a/modules/roles/manifests/sreview.pp +++ b/modules/roles/manifests/sreview.pp @@ -1,11 +1,5 @@ class roles::sreview { ssl::service { 'sreview.debian.net': notify => Exec['service apache2 reload'], key => true, } - file { '/var/lib/systemd/linger': - ensure => directory, - mode => '755', - } - file { '/var/lib/systemd/linger/sreview': - ensure => present, - } + dsa_systemd::linger { 'sreview': } }