Puppet Class: prometheus::install
- Defined in:
- manifests/install.pp
Summary
Install prometheusOverview
Install prometheus via different methods with parameters from init
Currently only the install from url is implemented, when Prometheus will deliver packages for some Linux distros I will implement the package install method as well
The package method needs specific yum or apt repo settings which are not made yet by the module
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 |
# File 'manifests/install.pp', line 9
class prometheus::install {
assert_private()
if $prometheus::server::localstorage and $prometheus::server::manage_localstorage {
file { $prometheus::server::localstorage:
ensure => 'directory',
owner => $prometheus::server::user,
group => $prometheus::server::group,
mode => '0755',
}
}
case $prometheus::server::install_method {
'url': {
archive { "/tmp/prometheus-${prometheus::server::version}.${prometheus::server::download_extension}":
ensure => present,
extract => true,
extract_path => '/opt',
source => $prometheus::server::real_download_url,
checksum_verify => false,
creates => "/opt/prometheus-${prometheus::server::version}.${prometheus::server::os}-${prometheus::server::real_arch}/prometheus",
cleanup => true,
extract_command => $prometheus::extract_command,
proxy_server => $prometheus::server::proxy_server,
proxy_type => $prometheus::server::proxy_type,
}
-> file {
"/opt/prometheus-${prometheus::server::version}.${prometheus::server::os}-${prometheus::server::real_arch}/prometheus":
owner => 'root',
group => 0, # 0 instead of root because OS X uses "wheel".
mode => '0555';
"${prometheus::server::bin_dir}/prometheus":
ensure => link,
notify => $prometheus::server::notify_service,
target => "/opt/prometheus-${prometheus::server::version}.${prometheus::server::os}-${prometheus::server::real_arch}/prometheus";
"${prometheus::server::bin_dir}/promtool":
ensure => link,
target => "/opt/prometheus-${prometheus::server::version}.${prometheus::server::os}-${prometheus::server::real_arch}/promtool";
$prometheus::server::shared_dir:
ensure => directory,
owner => $prometheus::server::user,
group => $prometheus::server::group,
mode => '0755';
"${prometheus::server::shared_dir}/consoles":
ensure => link,
notify => $prometheus::server::notify_service,
target => "/opt/prometheus-${prometheus::server::version}.${prometheus::server::os}-${prometheus::server::real_arch}/consoles";
"${prometheus::server::shared_dir}/console_libraries":
ensure => link,
notify => $prometheus::server::notify_service,
target => "/opt/prometheus-${prometheus::server::version}.${prometheus::server::os}-${prometheus::server::real_arch}/console_libraries";
}
}
'package': {
package { $prometheus::server::package_name:
ensure => $prometheus::server::package_ensure,
notify => $prometheus::server::notify_service,
before => File["${prometheus::server::config_dir}/rules"],
}
if $prometheus::server::manage_user {
User[$prometheus::server::user] -> Package[$prometheus::server::package_name]
}
}
'none': {}
default: {
fail("The provided install method ${prometheus::server::install_method} is invalid")
}
}
if $prometheus::server::manage_user {
ensure_resource('user', [$prometheus::server::user], {
ensure => 'present',
system => true,
groups => $prometheus::server::extra_groups,
shell => $prometheus::server::usershell,
})
if $prometheus::server::manage_group {
Group[$prometheus::server::group] -> User[$prometheus::server::user]
}
}
if $prometheus::server::manage_group {
ensure_resource('group', [$prometheus::server::group], {
ensure => 'present',
system => true,
})
}
if $prometheus::server::manage_config_dir {
file { $prometheus::server::config_dir:
ensure => 'directory',
owner => 'root',
group => $prometheus::server::group,
mode => $prometheus::server::config_mode,
purge => $prometheus::server::purge_config_dir,
recurse => $prometheus::server::purge_config_dir,
force => $prometheus::server::purge_config_dir,
}
}
}
|