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
|
# File 'manifests/agentless.pp', line 19
class icinga::agentless (
String[1] $user,
Boolean $manage_user,
Enum['ecdsa','ed25519','rsa'] $ssh_key_type,
String[1] $ssh_public_key,
Array[String[1]] $extra_packages = [],
) {
if defined(Class['icinga']) {
if $user != $icinga2::globals::user {
$user_name = $user
$user_group = undef
$user_home = "/home/${user}"
} else {
$user_name = $icinga2::globals::user
$user_group = $icinga2::globals::group
$user_home = $icinga::icinga_user_homedir
file { "/home/${user}":
ensure => absent,
recurse => true,
force => true,
}
}
if $manage_user { User[$user_name] -> Package[$icinga2::globals::package_name] }
Package[$icinga2::globals::package_name] -> Ssh_authorized_key["${user_name}@${$facts['networking']['fqdn']}"]
} else {
$user_name = $user
$user_group = if $facts['os']['family'] != 'suse' { undef } else { $user }
$user_home = "/home/${user}"
}
if $manage_user {
if $facts['os']['family'] == 'suse' {
group { $user_group:
system => true,
}
}
user { $user_name:
ensure => present,
gid => $user_group,
system => true,
managehome => true,
home => $user_home,
shell => '/bin/bash',
}
}
ssh_authorized_key { "${user_name}@${$facts['networking']['fqdn']}":
ensure => present,
user => $user_name,
key => $ssh_public_key,
type => $ssh_key_type,
}
if versioncmp(load_module_metadata('stdlib')['version'], '9.0.0') < 0 {
ensure_packages($extra_packages, { 'ensure' => 'present' })
} else {
stdlib::ensure_packages($extra_packages, { 'ensure' => 'present' })
}
}
|