Puppet Class: dynatrace::role::server_update
- Inherits:
- dynatrace
- Defined in:
- manifests/role/server_update.pp
Overview
server_update
| 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,
    }
  }
} |