From 5e460584ae24346e29a20df735615bbd3725d60e Mon Sep 17 00:00:00 2001 From: Andrew Stangl Date: Wed, 3 Feb 2016 16:41:30 +0200 Subject: [PATCH 1/2] add params to use systemd --- manifests/init.pp | 5 +++++ manifests/params.pp | 1 + manifests/service.pp | 23 +++++++++++++++++++++-- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/manifests/init.pp b/manifests/init.pp index 6042413..c44b9b1 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -61,6 +61,10 @@ # Install init file. If the init script is provided by a package, # set it to `false`. Defaults to 'true' # +# [*use_systemd*] +# Allow Kibana to be managed by systemd, instead of init script +# Defaults to 'false' +# # [*install_dir*] # Installation directory used iff install_method is 'archive' # Defaults to '/opt'. @@ -114,6 +118,7 @@ $service_name = $kibana4::params::service_name, $manage_init_file = $kibana4::params::manage_init_file, $init_template = $kibana4::params::init_template, + $use_systemd = $kibana4::params::use_systemd, $manage_user = $kibana4::params::manage_user, $kibana4_group = $kibana4::params::kibana4_group, $kibana4_gid = undef, diff --git a/manifests/params.pp b/manifests/params.pp index e0684fb..6467c77 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -15,6 +15,7 @@ $service_name = 'kibana4' $manage_init_file = true $init_template = 'kibana4/kibana.init.erb' + $use_systemd = false $manage_user = true $kibana4_group = 'kibana4' $kibana4_user = 'kibana4' diff --git a/manifests/service.pp b/manifests/service.pp index 34ec881..79af352 100644 --- a/manifests/service.pp +++ b/manifests/service.pp @@ -23,8 +23,27 @@ } $require = [File["/etc/init.d/${kibana4::service_name}"], File['/etc/default/kibana4']] - } else { - $require = undef + + } + + if $kibana4::use_systemd { + + file { "/etc/systemd/system/${kibana4::service_name}.service": + content => template('kibana4/kibana.systemd.erb'), + mode => '0755', + } + ~> + exec { 'execute kibana-service reload': + command => '/bin/systemctl daemon-reload', + refreshonly => true, + } + + file { "/etc/init.d/${kibana4::service_name}": + ensure => absent, + } + + $require = File["/etc/systemd/system/${kibana4::service_name}.service"] + } service { 'kibana4': From d926dae9a86c8cb9f3b21be429c6865176144154 Mon Sep 17 00:00:00 2001 From: Andrew Stangl Date: Wed, 3 Feb 2016 16:42:30 +0200 Subject: [PATCH 2/2] add template for systemd --- templates/kibana.systemd.erb | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 templates/kibana.systemd.erb diff --git a/templates/kibana.systemd.erb b/templates/kibana.systemd.erb new file mode 100644 index 0000000..d16e97d --- /dev/null +++ b/templates/kibana.systemd.erb @@ -0,0 +1,12 @@ +[Unit] +Description=Kibana 4 Web Interface +After=elasticsearch.service + +[Service] +ExecStart=/opt/kibana/bin/kibana +PIDFile=<%= scope.lookupvar('kibana4::pid_file') %> + +StandardError=journal + +[Install] +WantedBy=multi-user.target