]> WPIA git - infra.git/commitdiff
add: systemd module for executing daemon-reload
authorFelix Dörre <felix@dogcraft.de>
Tue, 28 Mar 2017 09:48:57 +0000 (11:48 +0200)
committerFelix Dörre <felix@dogcraft.de>
Sun, 16 Apr 2017 20:33:36 +0000 (22:33 +0200)
This change adds a new resource type that manages a given
unit file and triggers a systemd daemon-reload when any of
the files have been managed (but before any of their
dependencies, i.e. services, are managed).

Change-Id: I3ec4a38cfa09c6971269a1698d38af8b3b79d7ed

environments/production/manifests/gigi.pp
environments/production/manifests/gitweb.pp
environments/production/manifests/site.pp
modules/systemd/manifests/init.pp [new file with mode: 0644]
modules/systemd/manifests/unit_file.pp [new file with mode: 0644]

index 57c602f04854317805fdf5b3bdd5e12fefc10a1f..80bb50a5e50e9457760361838b718be64741dae6 100644 (file)
@@ -124,7 +124,7 @@ if $signerLocation == 'self' {
     require => Exec['apt_update']
   }
   $cass_ip = $ips[cassiopeia]
-  file {'/etc/systemd/system/tcpserial.service':
+  systemd::unit_file {'tcpserial.service':
     ensure => 'file',
     content => epp('gigi/tcpserial'),
     require => Package['tcpserial']
@@ -184,7 +184,7 @@ if $signerLocation == 'self' {
     source => 'puppet:///modules/cassiopeia/signer_client.key'
   }
 
-  file { '/etc/systemd/system/cassiopeia-client.service':
+  systemd::unit_file { 'cassiopeia-client.service':
     source => 'puppet:///modules/gigi/cassiopeia-client.service',
     ensure => 'present'
   } ->
index a13d2a6a556eaacbed14900b1fac424142592781..ade270829488560fd9cb4fa33f751055f32e6b0b 100644 (file)
@@ -20,12 +20,12 @@ node gitweb {
     group => 'git',
     before => Service['gitweb.service']
   }
-  file{ '/etc/systemd/system/git.socket':
+  systemd::unit_file {'git.socket':
     ensure => 'file',
     source => 'puppet:///modules/gitweb/git.socket',
     before => Service['git.socket']
   }
-  file{ '/etc/systemd/system/git@.service':
+  systemd::unit_file {'git@.service':
     ensure => 'file',
     source => 'puppet:///modules/gitweb/git@.service',
     before => Service['git.socket']
@@ -35,7 +35,7 @@ node gitweb {
     provider => 'systemd',
     enable => true
   }
-  file{ '/etc/systemd/system/gitweb.service':
+  systemd::unit_file {'gitweb.service':
     ensure => 'file',
     source => 'puppet:///modules/gitweb/gitweb.service',
     notify => Service['gitweb.service']
@@ -59,7 +59,7 @@ node gitweb {
   file{ '/etc/systemd/system/fcgiwrap.socket.d':
     ensure => 'directory'
   }
-  file{ '/etc/systemd/system/fcgiwrap.socket.d/ListenStream.conf':
+  systemd::unit_file {'fcgiwrap.socket.d/ListenStream.conf':
     ensure => 'file',
     source => 'puppet:///modules/gitweb/fcgiwrap-ListenStream.conf',
     notify => Service['fcgiwrap.socket']
@@ -67,7 +67,7 @@ node gitweb {
   file{ '/etc/systemd/system/fcgiwrap.service.d':
     ensure => 'directory'
   }
-  file{ '/etc/systemd/system/fcgiwrap.service.d/sandbox.conf':
+  systemd::unit_file {'fcgiwrap.service.d/sandbox.conf':
     ensure => 'file',
     source => 'puppet:///modules/gitweb/fcgiwrap-sandbox.conf',
     notify => Service['fcgiwrap.socket']
index 282d200f8ad5e1767e136495d98b758b86c189ee..34e30d095baaffd6c2baee49c3bc0183f8567285 100644 (file)
@@ -31,7 +31,7 @@ if $signerLocation == 'self' {
     require => Exec['apt_update']
   }
   $cass_ip='';
-  file {'/etc/systemd/system/tcpserial.service':
+  systemd::unit_file {'tcpserial.service':
     ensure => 'file',
     content => epp('gigi/tcpserial'),
     require => Package['tcpserial']
@@ -99,7 +99,7 @@ if $signerLocation == 'self' {
     content => epp('gigi/cassiopeia-client-conf'),
   }
 
-  file {'/etc/systemd/system/cassiopeia-signer.service':
+  systemd::unit_file {'cassiopeia-signer.service':
     ensure => 'file',
     source => 'puppet:///modules/gigi/cassiopeia-signer.service',
   }->
diff --git a/modules/systemd/manifests/init.pp b/modules/systemd/manifests/init.pp
new file mode 100644 (file)
index 0000000..ff051af
--- /dev/null
@@ -0,0 +1,6 @@
+class systemd (){
+  exec {'systemctl-daemon-reload':
+    command => '/bin/systemctl daemon-reload',
+    refreshonly => true
+  }
+}
\ No newline at end of file
diff --git a/modules/systemd/manifests/unit_file.pp b/modules/systemd/manifests/unit_file.pp
new file mode 100644 (file)
index 0000000..855c1e9
--- /dev/null
@@ -0,0 +1,18 @@
+define systemd::unit_file(
+  $ensure = file,
+  $path = '/etc/systemd/system',
+  $content = undef,
+  $source = undef,
+) {
+  include ::systemd
+
+  file { "${path}/${title}":
+    ensure  => $ensure,
+    content => $content,
+    source  => $source,
+    owner   => 'root',
+    group   => 'root',
+    mode    => '0644',
+    notify  => Exec['systemctl-daemon-reload'],
+  }
+}