From 7ab8396fef3a421b3235a12c8b564c02db004043 Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Tue, 10 Sep 2019 09:52:48 +0200 Subject: [PATCH] move rsync service/socket setup into a dsa_systemd::socket_service --- .../dsa_systemd/manifests/socket_service.pp | 62 +++++++++++++++++++ modules/rsync/manifests/site.pp | 47 ++------------ 2 files changed, 67 insertions(+), 42 deletions(-) create mode 100644 modules/dsa_systemd/manifests/socket_service.pp diff --git a/modules/dsa_systemd/manifests/socket_service.pp b/modules/dsa_systemd/manifests/socket_service.pp new file mode 100644 index 000000000..88459ada9 --- /dev/null +++ b/modules/dsa_systemd/manifests/socket_service.pp @@ -0,0 +1,62 @@ +# define and enable (or disable) a .socket activated .service +# +define dsa_systemd::socket_service( + Enum['present','absent'] $ensure = 'present', + String $service_content, + String $socket_content, +) { + $ensure_service = $ensure ? { + present => running, + absent => stopped, + } + + $ensure_enable = $ensure ? { + present => true, + absent => false, + } + + $systemd_service = "${name}.socket" + $service_file = "/etc/systemd/system/${name}@.service" + $socket_file = "/etc/systemd/system/${systemd_service}" + + # if we enable the service, we want the files before the service, so we + # subscribe the service to the files. + # if we remove the service, we want the service disabled before the files + # go away, so we say the service needs the files to be handled before. + $service_before = $ensure ? { + present => [], + default => [ + File[$service_file], + File[$socket_file], + ], + } + $service_subscribe = $ensure ? { + present => [ + File[$service_file], + File[$socket_file], + ], + default => [], + } + + + file { $service_file: + ensure => $ensure, + content => $service_content, + notify => Exec['systemctl daemon-reload'], + } + + file { $socket_file: + ensure => $ensure, + content => $socket_file_content, + notify => Exec['systemctl daemon-reload'], + } + + service { $systemd_service: + ensure => $ensure_service, + enable => $ensure_enable, + notify => Exec['systemctl daemon-reload'], + provider => systemd, + before => $service_before, + subscribe => $service_subscribe, + } +} diff --git a/modules/rsync/manifests/site.pp b/modules/rsync/manifests/site.pp index c1e15c27b..2ae703853 100644 --- a/modules/rsync/manifests/site.pp +++ b/modules/rsync/manifests/site.pp @@ -27,48 +27,11 @@ define rsync::site ( source => $source, } - $service_file = "/etc/systemd/system/rsyncd-${name}@.service" - $socket_file = "/etc/systemd/system/rsyncd-${name}.socket" - $systemd_service = "rsyncd-${name}.socket" - - # if we enable the service, we want the files before the service. - # if we remove the service, we want the service disabled before the files - # go away. - $service_subscribe = $ensure ? { - present => [ - File[$service_file], - File[$socket_file], - ], - default => [], - } - $service_before = $ensure ? { - present => [], - default => [ - File[$service_file], - File[$socket_file], - ], - } - - file { $service_file: - ensure => $ensure, - content => template('rsync/systemd-rsyncd.service.erb'), - require => File[$fname_real_rsync], - notify => Exec['systemctl daemon-reload'], - } - - file { $socket_file: - ensure => $ensure, - content => template('rsync/systemd-rsyncd.socket.erb'), - notify => Exec['systemctl daemon-reload'], - } - - service { $systemd_service: - ensure => $ensure_service, - enable => $ensure_enable, - notify => Exec['systemctl daemon-reload'], - provider => systemd, - before => $service_before, - subscribe => $service_subscribe, + dsa_systemd::socket_service { "rsyncd-${name}": + ensure => $ensure, + service_content => template('rsync/systemd-rsyncd.service.erb'), + socket_content => template('rsync/systemd-rsyncd.socket.erb'), + require => File[$fname_real_rsync], } if $sslname { -- 2.20.1