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
|
# 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)
return apply($targets) {
include puppet
$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,
}
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,
}
}
}
|