Puppet Class: dynatraceoneagent::download

Defined in:
manifests/download.pp

Summary

This class downloads the OneAgent installer binary

Overview



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
# File 'manifests/download.pp', line 4

class dynatraceoneagent::download {

  if !defined('archive') {
    class { 'archive':
      seven_zip_provider => '',
    }
  }

  $created_dir              = $dynatraceoneagent::created_dir
  $download_dir             = $dynatraceoneagent::download_dir
  $filename                 = $dynatraceoneagent::filename
  $download_path            = $dynatraceoneagent::download_path
  $proxy_server             = $dynatraceoneagent::proxy_server
  $allow_insecure           = $dynatraceoneagent::allow_insecure
  $download_options         = $dynatraceoneagent::download_options
  $download_link            = $dynatraceoneagent::download_link
  $download_cert_link       = $dynatraceoneagent::download_cert_link
  $cert_file_name           = $dynatraceoneagent::cert_file_name
  $provider                 = $dynatraceoneagent::provider
  $oneagent_params_hash     = $dynatraceoneagent::oneagent_params_hash
  $reboot_system            = $dynatraceoneagent::reboot_system
  $service_name             = $dynatraceoneagent::service_name
  $package_state            = $dynatraceoneagent::package_state
  $global_owner             = $dynatraceoneagent::global_owner
  $global_group             = $dynatraceoneagent::global_group
  $global_mode              = $dynatraceoneagent::global_mode

  if $package_state != 'absent' {
    file{ $download_dir:
      ensure => directory
    }

    archive{ $filename:
      ensure         => present,
      extract        => false,
      source         => $download_link,
      path           => $download_path,
      allow_insecure => $allow_insecure,
      require        => File[$download_dir],
      creates        => $created_dir,
      proxy_server   => $proxy_server,
      cleanup        => false,
    }
  }

  if ($::kernel == 'Linux' or $::osfamily  == 'AIX') and ($dynatraceoneagent::verify_signature) and ($package_state != 'absent'){

    archive{ $dynatraceoneagent::cert_file_name:
      ensure           => present,
      extract          => false,
      source           => $download_cert_link,
      path             => $dynatraceoneagent::dt_root_cert,
      allow_insecure   => $allow_insecure,
      require          => File[$download_dir],
      creates          => $dynatraceoneagent::cert_file_name,
      proxy_server     => $proxy_server,
      cleanup          => false,
      download_options => $download_options,
    }

    file{ $dynatraceoneagent::dt_root_cert:
      ensure => file,
      mode   => $global_mode,
    }

    $verify_signature_command = "( echo 'Content-Type: multipart/signed; protocol=\"application/x-pkcs7-signature\"; micalg=\"sha-256\";\
     boundary=\"--SIGNED-INSTALLER\"'; echo ; echo ; echo '----SIGNED-INSTALLER' ; \
     cat ${download_path} ) | openssl cms -verify -CAfile ${dynatraceoneagent::dt_root_cert} > /dev/null"

    exec { 'delete_oneagent_installer_script':
        command   => "rm ${$download_path}",
        cwd       => $download_dir,
        timeout   => 6000,
        provider  => $provider,
        logoutput => on_failure,
        unless    => $verify_signature_command,
        require   => [
            File[$dynatraceoneagent::dt_root_cert],
            Archive[$filename],
        ],
        creates   => $created_dir,
    }
  }
}