summaryrefslogtreecommitdiff
path: root/puppet/modules/clamav/manifests
diff options
context:
space:
mode:
authorChristoph Kluenter <ckluente@thoughtworks.com>2016-09-07 15:36:54 +0200
committervarac <varacanero@zeromail.org>2016-09-08 20:37:04 +0200
commita3af8acba8cd479f47d76784082d95100c0833ef (patch)
treec612dd789f43a2374c762c0ee0ee0fb320092378 /puppet/modules/clamav/manifests
parentf5db49cf6b3ca0a5830b849c0aac074e371b95d9 (diff)
start clamav after definitions are downloaded
freshclam might not be able to start clamav via the socket because the socket might not be there. This systemd unit watches for the definitions and then starts clamav. Resolves: #8431
Diffstat (limited to 'puppet/modules/clamav/manifests')
-rw-r--r--puppet/modules/clamav/manifests/daemon.pp1
-rw-r--r--puppet/modules/clamav/manifests/daemon/activation.pp24
2 files changed, 25 insertions, 0 deletions
diff --git a/puppet/modules/clamav/manifests/daemon.pp b/puppet/modules/clamav/manifests/daemon.pp
index 2e13a8fb..b51a07e9 100644
--- a/puppet/modules/clamav/manifests/daemon.pp
+++ b/puppet/modules/clamav/manifests/daemon.pp
@@ -1,5 +1,6 @@
# deploy clamav daemon
class clamav::daemon {
+ include clamav::daemon::activation
$domain_hash = hiera('domain')
$domain = $domain_hash['full_suffix']
diff --git a/puppet/modules/clamav/manifests/daemon/activation.pp b/puppet/modules/clamav/manifests/daemon/activation.pp
new file mode 100644
index 00000000..09c1e55e
--- /dev/null
+++ b/puppet/modules/clamav/manifests/daemon/activation.pp
@@ -0,0 +1,24 @@
+# ensure clamav starts after the definitions are downloaded
+# needed because sometimes clamd cannot get started by freshclam,
+# see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=827909
+class clamav::daemon::activation {
+
+ file { '/etc/systemd/system/clamav-daemon.path':
+ source => 'puppet:///modules/clamav/clamav-daemon.path',
+ mode => '0644',
+ owner => root,
+ group => root,
+ notify => [ Exec['systemctl-daemon-reload'], Systemd::Enable['clamav-daemon.path'] ]
+ }
+
+ systemd::enable { 'clamav-daemon.path':
+ require => Exec['systemctl-daemon-reload'],
+ notify => Exec['start_clamd_path_monitor']
+ }
+
+ exec { 'start_clamd_path_monitor':
+ command => '/bin/systemctl start clamav-daemon.path',
+ refreshonly => true,
+ before => Service['freshclam']
+ }
+}