Puppet Class: dynatrace::role::php_one_agent

Inherits:
dynatrace
Defined in:
manifests/role/php_one_agent.pp

Overview

php_one_agent

Parameters:

  • ensure (Any) (defaults to: 'present')
  • role_name (Any) (defaults to: 'Dynatrace PHP OneAgent')
  • ini_file_name (Any) (defaults to: $dynatraceappmon::php_one_agent_php_config_file_name)
  • ini_file_path (Any) (defaults to: $dynatraceappmon::php_one_agent_php_config_file_path)
  • installer_prefix_dir (Any) (defaults to: $dynatraceappmon::php_one_agent_installer_prefix_dir)
  • agent_name (Any) (defaults to: $dynatraceappmon::php_one_agent_name)
  • agent_version (Any) (defaults to: $dynatraceappmon::php_one_agent_version)
  • server_hostname (Any) (defaults to: $dynatraceappmon::php_one_agent_server_hostname)
  • one_agent_port (Any) (defaults to: $dynatraceappmon::php_one_agent_port)
  • one_agent_name (Any) (defaults to: $dynatraceappmon::php_one_agent_name)
  • installer_file_name (Any) (defaults to: $dynatraceappmon::php_one_agent_installer_file_name)
  • installer_file_url (Any) (defaults to: $dynatraceappmon::php_one_agent_installer_file_url)
  • installer_bitsize (Any) (defaults to: $dynatraceappmon::php_one_agent_installer_bitsize)
  • service_name (Any) (defaults to: $dynatraceappmon::php_one_agent_apache_service_name)


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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'manifests/role/php_one_agent.pp', line 2

class dynatrace::role::php_one_agent (

  $ensure               = 'present',
  $role_name            = 'Dynatrace PHP OneAgent',
  $ini_file_name        = $dynatraceappmon::php_one_agent_php_config_file_name,
  $ini_file_path        = $dynatraceappmon::php_one_agent_php_config_file_path,
  $installer_prefix_dir = $dynatraceappmon::php_one_agent_installer_prefix_dir,
  $agent_name           = $dynatraceappmon::php_one_agent_name,
  $agent_version        = $dynatraceappmon::php_one_agent_version,
  $server_hostname      = $dynatraceappmon::php_one_agent_server_hostname,
  $one_agent_port       = $dynatraceappmon::php_one_agent_port,
  $one_agent_name       = $dynatraceappmon::php_one_agent_name,
  $installer_file_name  = $dynatraceappmon::php_one_agent_installer_file_name,
  $installer_file_url   = $dynatraceappmon::php_one_agent_installer_file_url,
  $installer_bitsize    = $dynatraceappmon::php_one_agent_installer_bitsize,
  $service_name         = $dynatraceappmon::php_one_agent_apache_service_name,
) inherits dynatrace {

  validate_re($ensure, ['^present$', '^absent$'])
  validate_re($installer_bitsize, ['^32', '64'])
  validate_string($ini_file_name, $installer_file_name, $installer_file_url)
  validate_string($agent_name, $server_hostname, $one_agent_port)

  case $::kernel {
    'Linux': {
      $ini_file = "${ini_file_path}/${ini_file_name}"
    }
    default: {}
  }

  $directory_ensure = $ensure ? {
    'present' => 'directory',
    'absent'  => 'absent',
    default   => 'directory',
  }

  $installation_ensure = $ensure ? {
    'present' => 'installed',
    'absent'  => 'uninstalled',
    default   => 'installed',
  }

  file { $ini_file :
    ensure => file,
  }

  $installer_cache_dir = $settings::vardir

  archive { "Copy and extracting ${role_name}":
    ensure       => $ensure,
    temp_dir     => $installer_cache_dir,
    path         => "${installer_cache_dir}/${installer_file_name}",
    filename     => $installer_file_name,
    source       => $installer_file_url,
    extract      => true,
    extract_path => $installer_prefix_dir,
    creates      => "${installer_prefix_dir}/dynatrace-oneagent-${agent_version}/agent/bin/linux-x86-${installer_bitsize}/liboneagentloader.so"
  }

  file_line { "Inject extension with '${installer_prefix_dir}/dynatrace-oneagent-${agent_version}/agent/bin/linux-x86-${installer_bitsize}/liboneagentloader.so' path into ${ini_file}":
    ensure => $ensure,
    path   => $ini_file,
    line   => "extension = ${installer_prefix_dir}/dynatrace-oneagent-${agent_version}/agent/bin/linux-x86-${installer_bitsize}/liboneagentloader.so",
    match  => '^extension\s?=\s?.*liboneagentloader.so$',
    before => Exec["Start the service: ${service_name}"]
  }

  file_line { "Inject phpagent.agentname '${one_agent_name}' into ${ini_file}":
    ensure => $ensure,
    path   => $ini_file,
    line   => "phpagent.agentname = ${one_agent_name}",
    match  => '^phpagent.agentname\s?=\s?.*$',
    before => Exec["Start the service: ${service_name}"]
  }

  file_line { "Inject phpagent.server address 'https://${server_hostname}:${one_agent_port}' into ${ini_file}":
    ensure => $ensure,
    path   => $ini_file,
    line   => "phpagent.server = https://${server_hostname}:${one_agent_port}",
    match  => '^phpagent.server\s?=\s?.*$',
    before => Exec["Start the service: ${service_name}"]
  }

  file_line { "Inject phpagent.tenant into ${ini_file}":
    ensure => $ensure,
    path   => $ini_file,
    line   => 'phpagent.tenant = 1',
    match  => '^phpagent.tenant\s?=\s?.*$',
    before => Exec["Start the service: ${service_name}"]
  }

  exec { "Start the service: ${service_name}":
    command => "service ${service_name} restart",
    path    => ['/usr/bin', '/usr/sbin', '/bin', '/sbin'],
    onlyif  => ["test -x /usr/sbin/${service_name}"]
  }

}