Add systemd override unit
authorPeter Palfrader <peter@palfrader.org>
Mon, 17 Jul 2017 09:29:35 +0000 (11:29 +0200)
committerPeter Palfrader <peter@palfrader.org>
Mon, 17 Jul 2017 09:29:35 +0000 (11:29 +0200)
modules/systemd/manifests/override.pp [new file with mode: 0644]

diff --git a/modules/systemd/manifests/override.pp b/modules/systemd/manifests/override.pp
new file mode 100644 (file)
index 0000000..7492a55
--- /dev/null
@@ -0,0 +1,44 @@
+define systemd::override (
+       $source=undef,
+       $content=undef,
+       $ensure=present
+) {
+
+       $dir = "/etc/systemd/system/${name}.service.d"
+       $dest = "${dir}/override.conf"
+       case $ensure {
+               present: {
+                       if ! ($source or $content) {
+                               fail ( "No configuration found for ${name}" )
+                       }
+
+                       file { "${dir}":
+                               ensure => directory,
+                               mode   => '0755'
+                       }
+                       if $content {
+                               file { "${dest}":
+                                       ensure  => $ensure,
+                                       content => $content,
+                                       notify  => Exec['systemctl daemon-reload'],
+                               }
+                       } elsif $source {
+                               file { "${dest}":
+                                       ensure  => $ensure,
+                                       source  => $source,
+                                       notify  => Exec['systemctl daemon-reload'],
+                               }
+                       }
+               }
+               absent:  {
+                       file { "${dest}":
+                               ensure  => $ensure,
+                               notify  => Exec['service apache2 reload'],
+                       }
+                       file { "${dir}":
+                               ensure => $ensure
+                       }
+               }
+               default: { fail ( "Unknown ensure value: '$ensure'" ) }
+       }
+}