]> git.netwichtig.de Git - user/henk/code/puppet/modules/s6.git/commitdiff
rotate logs of system services, but not user services
authorHendrik Jäger <gitcommit@henk.geekmail.org>
Wed, 4 May 2022 18:49:32 +0000 (20:49 +0200)
committerHendrik Jäger <gitcommit@henk.geekmail.org>
Sun, 22 May 2022 18:04:54 +0000 (20:04 +0200)
manifests/config.pp [new file with mode: 0644]
manifests/init.pp
manifests/service.pp
templates/etc/s6-services/s6-logrotater/run.epp [new file with mode: 0644]

diff --git a/manifests/config.pp b/manifests/config.pp
new file mode 100644 (file)
index 0000000..85a0831
--- /dev/null
@@ -0,0 +1,16 @@
+class s6::config {
+  $basedir = '/etc/s6-services/s6-logrotater'
+
+  file {
+    $basedir:
+      ensure => directory,
+      mode   => '0600',
+    ;
+
+    "${basedir}/run":
+      ensure  => present,
+      content => epp("s6/${basedir}/run.epp"),
+      mode    => '0700',
+    ;
+  }
+}
index cd3665607a8429ae9e8fd925105baca138ca8ec0..314117452cb4be89960d64dd929b8dab4126089e 100644 (file)
@@ -5,6 +5,9 @@ class s6 {
     "${name}::install":
       notify => Class["${name}::service"],
     ;
+    "${name}::config":
+      notify => Class["${name}::service"],
+    ;
     "${name}::service": ;
   }
 }
index 0e906642026e3f8b68374d748f2f9e6f070c01b6..92e13c9352cf0106c25c4555c184c9cba1f8cba9 100644 (file)
@@ -4,5 +4,10 @@ class s6::service {
       ensure => running,
       enable => true,
     ;
+    's6-logrotater':
+      ensure   => running,
+      enable   => true,
+      provider => 's6',
+    ;
   }
 }
diff --git a/templates/etc/s6-services/s6-logrotater/run.epp b/templates/etc/s6-services/s6-logrotater/run.epp
new file mode 100644 (file)
index 0000000..347f85d
--- /dev/null
@@ -0,0 +1,12 @@
+<% if versioncmp( $facts['os']['release']['major'], '10' ) >= 1 { -%>
+#!/usr/bin/execlineb -P
+<% } else { -%>
+#!/usr/local/bin/execlineb -P
+<% } -%>
+
+foreground { sleep 10m }
+
+forbacktickx -p s6svc { ls -1N /etc/s6-scandir/ }
+importas -u s6svc s6svc
+if { test -d /etc/s6-scandir/\${s6svc}/log }
+s6-svc -a /etc/s6-scandir/\${s6svc}/log