Puppet Class: dynatrace::role::wsagent_package
- Inherits:
- dynatrace
- Defined in:
- manifests/role/wsagent_package.pp
Overview
wsagent_package
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 |
# File 'manifests/role/wsagent_package.pp', line 2
class dynatrace::role::wsagent_package (
$ensure = 'present',
$role_name = 'Dynatrace WebServer Agent',
$installer_prefix_dir = $dynatrace::wsagent_package_installer_prefix_dir,
$installer_file_name = $dynatrace::wsagent_package_installer_file_name,
$installer_file_url = $dynatrace::wsagent_package_installer_file_url,
$agent_name = $dynatrace::wsagent_package_agent_name,
$collector_hostname = $dynatrace::wsagent_package_collector_hostname,
$collector_port = $dynatrace::wsagent_package_collector_port,
$dynatrace_owner = $dynatrace::dynatrace_owner,
$dynatrace_group = $dynatrace::dynatrace_group,
) inherits dynatrace {
validate_re($ensure, ['^present$', '^absent$'])
validate_string($installer_prefix_dir, $installer_file_name)
validate_string($agent_name, $collector_hostname, $collector_port)
case $::kernel {
'Linux': {
$installer_script_name = 'install-wsagent-package.sh'
$service = $dynatrace::dynaTraceWebServerAgent
$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)
include dynatrace::role::dynatrace_user
ensure_resource(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/wsagent_package/${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 => 'agent',
installer_path_detailed => "${installer_prefix_dir}/dynatrace/agent/conf/agentversion.${agent_name}",
installer_owner => $dynatrace_owner,
installer_group => $dynatrace_group,
installer_cache_dir => $installer_cache_dir
}
file { "Configure and copy the ${role_name}'s 'dtwsagent.ini' file":
ensure => $ensure,
path => "${installer_prefix_dir}/dynatrace/agent/conf/dtwsagent.ini",
owner => $dynatrace_owner,
group => $dynatrace_group,
content => template('dynatrace/wsagent_package/dtwsagent.ini.erb'),
require => Dynatrace_installation["Install the ${role_name}"],
notify => Service["Start and enable the ${role_name}'s service: '${service}'"]
}
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,
'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
}
}
|