Puppet Class: dynatrace::role::server_update

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

Overview

server_update

Parameters:

  • ensure (Any) (defaults to: 'present')
  • role_name (Any) (defaults to: 'Dynatrace Server update')
  • collector_port (Any) (defaults to: $dynatrace::server_collector_port)
  • update_file_url (Any) (defaults to: $dynatrace::update_file_url)
  • update_rest_url (Any) (defaults to: $dynatrace::update_rest_url)
  • update_user (Any) (defaults to: $dynatrace::update_user)
  • update_passwd (Any) (defaults to: $dynatrace::update_passwd)
  • dynatrace_owner (Any) (defaults to: $dynatrace::dynatrace_owner)
  • dynatrace_group (Any) (defaults to: $dynatrace::dynatrace_group)


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
100
101
102
103
104
105
106
107
# File 'manifests/role/server_update.pp', line 2

class dynatrace::role::server_update (
  $ensure                  = 'present',
  $role_name               = 'Dynatrace Server update',

  $collector_port          = $dynatrace::server_collector_port,

  $update_file_url         = $dynatrace::update_file_url,
  $update_rest_url         = $dynatrace::update_rest_url,
  $update_user             = $dynatrace::update_user,
  $update_passwd           = $dynatrace::update_passwd,

  $dynatrace_owner         = $dynatrace::dynatrace_owner,
  $dynatrace_group         = $dynatrace::dynatrace_group

) inherits dynatrace {

  case $::kernel {
    'Linux': {
      $installer_script_name = 'install-server.sh'

      $service                 = $dynatrace::dynaTraceServer
      $collectorService        = $dynatrace::dynaTraceCollector
      $dynaTraceAnalysis       = $dynatrace::dynaTraceAnalysis
      $dynaTraceWebServerAgent = $dynatrace::dynaTraceWebServerAgent
      $dynaTraceHostagent      = $dynatrace::dynaTraceHostagent

      $installer_cache_dir = "${dynatrace::installer_cache_dir}/dynatrace"
      $installer_cache_dir_tree = dirtree($installer_cache_dir)
      $update_file_path = $installer_cache_dir
      $services_to_stop_array = $dynatrace::services_to_manage_array

      $services_to_start_array = [
        $dynatrace::dynaTraceServer,
        $dynatrace::dynaTraceCollector,
        $dynatrace::dynaTraceAnalysis,
        $dynatrace::dynaTraceWebServerAgent,
        $dynatrace::dynaTraceHostagent,
#        'dynaTraceBackendServer',
#        'dynaTraceFrontendServer'
        ]

    }
    default: {}
  }

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

  include dynatrace::role::dynatrace_user

  ensure_resource(file, $installer_cache_dir_tree, {
    ensure  => $directory_ensure,
    require => Class['dynatrace::role::dynatrace_user']
  })

  file { "${installer_cache_dir}/server_update":
    ensure => 'directory',
    mode   => '1777',
    owner  => $dynatrace_owner,
    group  => $dynatrace_group,
  }

  # introducing order (archive then update and stop then start services)
  archive { 'dynaTrace-update':
    ensure           => present,
    url              => $update_file_url,
    target           => "${installer_cache_dir}/server_update",
    follow_redirects => true,
    extension        => 'zip',
    checksum         => false,
    src_target       => '/tmp',
  }
  -> make_server_update { $update_file_path:
    ensure           => present,
    update_file_path => $update_file_path,
    rest_update_url  => $update_rest_url,
    user             => $update_user,
    passwd           => $update_passwd,
    notify           => Wait_until_port_is_open[  $collector_port ]
  }

  wait_until_port_is_open { $collector_port:
    ensure  => $ensure,
  }

  -> wait_until_port_is_open { '2021':
    ensure  => $ensure,
  }

  -> wait_until_port_is_open { '8021':
    ensure  => $ensure,
  }

  -> wait_until_port_is_open { '9911':
    ensure  => $ensure,
  }

  if $collector_port != '6699' {
    wait_until_port_is_open { '6699':
      ensure  => $ensure,
    }
  }
}