diff --git a/manifests/client.pp b/manifests/client.pp index 8883a31..ddce329 100644 --- a/manifests/client.pp +++ b/manifests/client.pp @@ -28,6 +28,8 @@ class xymon::client ( $package_name = $xymon::params::cli_package_name, $pkg_ensure = $xymon::params::cli_pkg_ensure, $pkg_provider = $xymon::params::cli_pkg_provider, + $service_enabled = $xymon::params::cli_service_enabled, + $service_managed = $xymon::params::cli_service_managed, $service_name = $xymon::params::cli_service_name, $service_default_path = $xymon::params::cli_service_default_path, $service_path = $xymon::params::cli_service_path, @@ -37,9 +39,11 @@ class xymon::client ( include '::xymon::client::preconfig' include '::xymon::client::install' include '::xymon::client::config' + include '::xymon::client::service' Class['::xymon::client::preconfig'] -> Class['::xymon::client::install'] -> - Class['::xymon::client::config'] + Class['::xymon::client::config'] -> + Class['::xymon::client::service'] } # Public class: xymon::client diff --git a/manifests/client/config.pp b/manifests/client/config.pp index 057c12f..79d6846 100644 --- a/manifests/client/config.pp +++ b/manifests/client/config.pp @@ -14,6 +14,7 @@ class xymon::client::config { ensure => present, mode => 0754, content => template($xymon::client::service_tpl), + notify => Service[$xymon::client::service_name], } diff --git a/manifests/client/service.pp b/manifests/client/service.pp new file mode 100644 index 0000000..952abab --- /dev/null +++ b/manifests/client/service.pp @@ -0,0 +1,23 @@ +# == Class: xymon::client::service +# +# Manage Xymon client service +# +class xymon::client::service { + + if $xymon::client::service_enabled == true { + $service_ensure = 'running' + } else { + $service_ensure = 'stopped' + } + + if $xymon::client::service_managed == true { + service { $xymon::client::service_name: + ensure => $service_ensure, + enable => $xymon::client::service_enabled, + hasstatus => true, + hasrestart => true, + } + } + + +} # Private class: xymon::client::service diff --git a/manifests/params.pp b/manifests/params.pp index 6bc6fd2..71b83c6 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -14,6 +14,8 @@ class xymon::params { $cli_pkg_provider = 'dpkg' # Service + $cli_service_enabled = true + $cli_service_managed = true $cli_service_name = 'xymon-client' $cli_service_default_path = '/etc/default/xymon-client' $cli_service_path = '/etc/init.d/xymon-client'