make a dsa_systemd::linger to enable or disable lingering consistently
authorPeter Palfrader <peter@palfrader.org>
Sun, 8 Sep 2019 13:46:52 +0000 (15:46 +0200)
committerPeter Palfrader <peter@palfrader.org>
Sun, 8 Sep 2019 13:46:55 +0000 (15:46 +0200)
modules/buildd/manifests/pybuildd.pp
modules/dsa_systemd/manifests/init.pp
modules/dsa_systemd/manifests/linger.pp [new file with mode: 0644]
modules/roles/manifests/jenkins.pp
modules/roles/manifests/sreview.pp

index b2c98e2..ebc23e6 100644 (file)
@@ -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',
index 5fff2c1..2e09b06 100644 (file)
@@ -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 (file)
index 0000000..a10987c
--- /dev/null
@@ -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,
+  }
+}
index f036d19..2efd7e0 100644 (file)
@@ -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': }
 }
index 89c01d2..52ec813 100644 (file)
@@ -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': }
 }