diff --git a/manifests/freshclam.pp b/manifests/freshclam.pp index c3f44a8..d5057a4 100644 --- a/manifests/freshclam.pp +++ b/manifests/freshclam.pp @@ -44,6 +44,15 @@ $service_subscribe = File['freshclam.conf'] } + if $clamav::freshclam_initial_run { + # Run freshclam once so that the clamav daemon won't fail on startup + exec { 'freshclam': + path => '/sbin:/bin:/usr/sbin:/usr/bin', + creates => "${config_options['DatabaseDirectory']}/main.cvd", + subscribe => $service_subscribe, + } + } + # NOTE: RedHat comes with /etc/cron.daily/freshclam instead of a service if $clamav::freshclam_service { service { 'freshclam': @@ -53,6 +62,7 @@ hasrestart => true, hasstatus => true, subscribe => $service_subscribe, + require => Exec['/usr/bin/freshclam'], } } diff --git a/manifests/init.pp b/manifests/init.pp index 7c04544..6b6a31e 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -41,6 +41,7 @@ $freshclam_options = $clamav::params::freshclam_options, $freshclam_sysconfig = $clamav::params::freshclam_sysconfig, $freshclam_delay = $clamav::params::freshclam_delay, + $freshclam_initial_run = $clamav::params::freshclam_initial_run, $clamav_milter_package = $clamav::params::clamav_milter_package, $clamav_milter_version = $clamav::params::clamav_milter_version, @@ -118,6 +119,10 @@ Anchor['clamav::end'] } + if $manage_clamd and $manage_freshclam { + Class['clamav::freshclam'] -> Class['clamav::clamd'] + } + if $manage_clamav_milter { Class['clamav::install'] -> class { '::clamav::clamav_milter': } -> diff --git a/manifests/params.pp b/manifests/params.pp index 3684e55..bf0ab13 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -15,6 +15,7 @@ $clamd_service_enable = true $freshclam_service_ensure = 'running' $freshclam_service_enable = true + $freshclam_initial_run = true $clamav_milter_service_ensure = 'running' $clamav_milter_service_enable = true