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
|
# File 'plans/server/bootstrap.pp', line 1
plan puppet::server::bootstrap (
TargetSpec $targets,
Puppet::Platform $collection = 'puppet8',
String $access_data_lookup_key = 'puppet::server::bootstrap::access',
String $ssh_config_lookup_key = 'puppet::server::bootstrap::ssh_config',
Stdlib::Unixpath $bootstrap_path = '/root/bootstrap',
Boolean $use_ssh = true,
Optional[String] $certname = undef,
Optional[String] $dns_alt_names = undef,
) {
run_plan(facts, $targets)
$apply_results = apply($targets) {
$access_data = lookup({
name => $access_data_lookup_key,
value_type => Array[
Struct[{
name => String,
key_data => String,
key_prefix => String,
Optional[server] => String,
Optional[sshkey_type] => String,
Optional[ssh_options] => Hash[String, Variant[String, Integer, Array[String]]],
}]
],
default_value => [],
})
$ssh_config = lookup({
name => $ssh_config_lookup_key,
value_type => Array[
Hash[String, Variant[String, Integer, Array[String]]]
],
default_value => [],
})
$dns_alt_names_list = lookup({
name => 'puppet::server::bootstrap::dns_alt_names',
value_type => Array[Stdlib::Host],
default_value => $dns_alt_names ? {
String => split($dns_alt_names, /,/),
default => [],
},
})
class { 'puppet::globals':
platform_name => $collection,
}
include puppet
class { 'puppet::server::bootstrap::globals':
access_data => $access_data,
ssh_config => $ssh_config,
bootstrap_path => $bootstrap_path,
}
class { 'puppet::server::bootstrap':
# set it to 'production' because Bolt catalog's default is 'bolt_catalog'
node_environment => 'production',
use_ssh => $use_ssh,
certname => $certname,
dns_alt_names => $dns_alt_names_list,
}
}
# Print log messages from the report
$apply_results.each |$result| {
$result.report['logs'].each |$log| {
out::message("${log['level'].capitalize}: ${log['source']}: ${log['message']}")
}
}
return $apply_results
}
|