1
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
# File 'manifests/role/memory_analysis_server.pp', line 1
class dynatrace::role::memory_analysis_server (
$ensure = 'present',
$role_name = 'Dynatrace Memory Analysis Server',
$installer_bitsize = $dynatrace::memory_analysis_server_installer_bitsize,
$installer_prefix_dir = $dynatrace::memory_analysis_server_installer_prefix_dir,
$installer_file_name = $dynatrace::memory_analysis_server_installer_file_name,
$installer_file_url = $dynatrace::memory_analysis_server_installer_file_url,
$server_port = $dynatrace::memory_analysis_server_server_port,
$jvm_xms = $dynatrace::memory_analysis_server_jvm_xms,
$jvm_xmx = $dynatrace::memory_analysis_server_jvm_xmx,
$jvm_perm_size = $dynatrace::memory_analysis_server_jvm_perm_size,
$jvm_max_perm_size = $dynatrace::memory_analysis_server_jvm_max_perm_size,
$dynatrace_owner = $dynatrace::dynatrace_owner,
$dynatrace_group = $dynatrace::dynatrace_group
) inherits dynatrace {
validate_re($ensure, ['^present$', '^absent$'])
validate_re($installer_bitsize, ['^32', '64'])
validate_string($installer_prefix_dir, $installer_file_name)
validate_string($server_port)
case $::kernel {
'Linux': {
$installer_script_name = 'install-memory-analysis-server.sh'
$service = 'dynaTraceAnalysis'
$init_scripts = [$service]
}
default: {}
}
$directory_ensure = $ensure ? {
'present' => 'directory',
'absent' => 'absent',
default => 'directory',
}
$installation_ensure = $ensure ? {
'present' => 'installed',
'absent' => 'uninstalled',
default => 'installed',
}
$service_ensure = $ensure ? {
'present' => 'running',
'absent' => 'stopped',
default => 'running',
}
$installer_cache_dir = "${settings::vardir}/dynatrace"
$installer_cache_dir_tree = dirtree($installer_cache_dir)
class { 'dynatrace::role::dynatrace_user':
dynatrace_owner => $dynatrace_owner,
dynatrace_group => $dynatrace_group
}
file { $installer_cache_dir_tree:
ensure => $directory_ensure,
require => Class['dynatrace::role::dynatrace_user']
}
dynatrace::resource::copy_or_download_file { "Copy or download the ${role_name} installer":
ensure => $ensure,
file_name => $installer_file_name,
file_url => $installer_file_url,
path => "${installer_cache_dir}/${installer_file_name}",
require => File[$installer_cache_dir_tree],
notify => [
File["Configure and copy the ${role_name}'s install script"],
Dynatrace_installation["Install the ${role_name}"]
]
}
file { "Configure and copy the ${role_name}'s install script":
ensure => $ensure,
path => "${installer_cache_dir}/${installer_script_name}",
content => template("dynatrace/memory_analysis_server/${installer_script_name}"),
mode => '0744',
before => Dynatrace_installation["Install the ${role_name}"]
}
dynatrace_installation { "Install the ${role_name}":
ensure => $installation_ensure,
installer_prefix_dir => $installer_prefix_dir,
installer_file_name => $installer_file_name,
installer_file_url => $installer_file_url,
installer_script_name => $installer_script_name,
installer_path_part => 'dtanalysisserver',
installer_owner => $dynatrace_owner,
installer_group => $dynatrace_group,
installer_cache_dir => $installer_cache_dir
}
if $::kernel == 'Linux' {
dynatrace::resource::configure_init_script { $init_scripts:
ensure => $ensure,
role_name => $role_name,
installer_prefix_dir => $installer_prefix_dir,
owner => $dynatrace_owner,
group => $dynatrace_group,
init_scripts_params => {
'installer_prefix_dir' => $installer_prefix_dir,
'server_port' => $server_port,
'jvm_xms' => $jvm_xms,
'jvm_xmx' => $jvm_xmx,
'jvm_perm_size' => $jvm_perm_size,
'jvm_max_perm_size' => $jvm_max_perm_size,
'user' => $dynatrace_owner
},
notify => Service["Start and enable the ${role_name}'s service: '${service}'"]
}
}
service { "Start and enable the ${role_name}'s service: '${service}'":
ensure => $service_ensure,
name => $service,
enable => true
}
wait_until_port_is_open { $server_port:
ensure => $ensure,
require => Service["Start and enable the ${role_name}'s service: '${service}'"]
}
}
|