Defined Type: st2::service

Defined in:
manifests/service.pp

Summary

Creates additional service for components that can be scaled out

Overview

Examples:

build st2workflowengine service

st2::service { 'st2workflowengine':
  service_name => 'st2workflowengine-rsa',
  service_num => '2',
  existing_services => ['st2workflowengine'],
}

Parameters:

  • service_name (Any)

    The service name that we are attempting to scale

  • service_num (Any)

    The number of servicees that should be scaled out

  • existing_services (Any)

    The service to make sure are enabled and running. All new service are automatically added to this.



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
57
58
59
60
61
62
# File 'manifests/service.pp', line 18

define st2::service(
  $service_name,
  $service_num,
  $existing_services,
) {
  if ($service_num > 1) {
    $additional_service = range('2', $service_num).reduce([]) |$memo, $number| {
      $new_service_name = "${service_name}${number}"
      case $facts['os']['family'] {
        'RedHat': {
          $file_path = '/usr/lib/systemd/system/'
        }
        'Debian': {
          $file_path = '/lib/systemd/system/'
        }
        default: {
          fail("Unsupported managed repository for osfamily: ${facts['os']['family']}, operatingsystem: ${facts['os']['name']}")
        }
      }

      systemd::unit_file { "${new_service_name}.service":
        path   => $file_path,
        source => "${file_path}${service_name}.service",
        owner  => 'root',
        group  => 'root',
        mode   => '0644',
      }

      $memo + [$new_service_name]
    }

    $_existing_services = $existing_services + $additional_service

  } else {
    $_existing_services = $existing_services
  }

  ########################################
  ## Service
  service { $_existing_services:
    ensure => 'running',
    enable => true,
    tag    => 'st2::service',
  }
}