Puppet Class: jboss::internal::service

Defined in:
manifests/internal/service.pp

Overview

Internal class - manage JBoss service



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'manifests/internal/service.pp', line 2

class jboss::internal::service {

  include jboss
  include jboss::params
  include jboss::internal::configuration

  Exec {
    path      => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
    logoutput => 'on_failure',
  }

  anchor { 'jboss::service::begin': }

  $servicename = $jboss::product

  service { $servicename:
    ensure     => running,
    enable     => true,
    hasstatus  => true,
    hasrestart => true,
    subscribe  => [
      Anchor['jboss::package::end'],
      Anchor['jboss::service::begin'],
    ],
  }

  exec { 'jboss::service::test-running':
    loglevel  => 'emerg',
    command   => "tail -n 50 ${jboss::internal::configuration::logfile} && exit 1",
    unless    => "ps aux | grep ${servicename} | grep -vq grep",
    logoutput => true,
    subscribe => Service[$servicename],
  }

  exec { 'jboss::service::restart':
    command     => "service ${servicename} stop ; pkill -9 -f \"^java.*jboss\"  ; service ${servicename} start",
    refreshonly => true,
    require     => Exec['jboss::service::test-running'],
  }

  anchor { 'jboss::service::end':
    require => [
      Service[$servicename],
      Exec['jboss::service::test-running'],
    ],
  }

  anchor { 'jboss::service::started':
    require => [
      Service[$servicename],
      Anchor['jboss::service::end'],
      Exec['jboss::service::restart'],
    ],
  }
}