-
Notifications
You must be signed in to change notification settings - Fork 54
/
Copy pathinstall.pp
120 lines (99 loc) · 4.67 KB
/
install.pp
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
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
# @summary Install a new PE cluster
#
# @param compiler_pool_address
# The service address used by agents to connect to compilers, or the Puppet
# service. Typically this is a load balancer.
# @param internal_compiler_a_pool_address
# A load balancer address directing traffic to any of the "A" pool
# compilers. This is used for DR configuration in large and extra large
# architectures.
# @param internal_compiler_b_pool_address
# A load balancer address directing traffic to any of the "B" pool
# compilers. This is used for DR configuration in large and extra large
# architectures.
# @param pe_installer_source
# The URL to download the Puppet Enterprise installer media from. If not
# specified, PEAdm will attempt to download PE installation media from its
# standard public source. When specified, PEAdm will download directly from the
# URL given.
#
plan peadm::install (
# Standard
Peadm::SingleTargetSpec $primary_host,
Optional[Peadm::SingleTargetSpec] $replica_host = undef,
# Large
Optional[TargetSpec] $compiler_hosts = undef,
# Extra Large
Optional[Peadm::SingleTargetSpec] $primary_postgresql_host = undef,
Optional[Peadm::SingleTargetSpec] $replica_postgresql_host = undef,
# Common Configuration
String $console_password,
Peadm::Pe_version $version = '2019.8.8',
Optional[String] $pe_installer_source = undef,
Optional[Array[String]] $dns_alt_names = undef,
Optional[String] $compiler_pool_address = undef,
Optional[String] $internal_compiler_a_pool_address = undef,
Optional[String] $internal_compiler_b_pool_address = undef,
Optional[Hash] $pe_conf_data = { },
# Code Manager
Optional[String] $r10k_remote = undef,
Optional[String] $r10k_private_key_file = undef,
Optional[Peadm::Pem] $r10k_private_key_content = undef,
Optional[String] $deploy_environment = undef,
# License Key
Optional[String] $license_key_file = undef,
Optional[String] $license_key_content = undef,
# Other
Optional[String] $stagingdir = undef,
Enum[direct,bolthost] $download_mode = 'bolthost',
Boolean $permit_unsafe_versions = false,
) {
peadm::assert_supported_bolt_version()
peadm::assert_supported_pe_version($version, $permit_unsafe_versions)
$install_result = run_plan('peadm::subplans::install',
# Standard
primary_host => $primary_host,
replica_host => $replica_host,
# Large
compiler_hosts => $compiler_hosts,
# Extra Large
primary_postgresql_host => $primary_postgresql_host,
replica_postgresql_host => $replica_postgresql_host,
# Common Configuration
version => $version,
pe_installer_source => $pe_installer_source,
console_password => $console_password,
dns_alt_names => $dns_alt_names,
pe_conf_data => $pe_conf_data,
# Code Manager
r10k_remote => $r10k_remote,
r10k_private_key_file => $r10k_private_key_file,
r10k_private_key_content => $r10k_private_key_content,
# License Key
license_key_file => $license_key_file,
license_key_content => $license_key_content,
# Other
stagingdir => $stagingdir,
download_mode => $download_mode,
permit_unsafe_versions => $permit_unsafe_versions,
)
$configure_result = run_plan('peadm::subplans::configure',
# Standard
primary_host => $primary_host,
replica_host => $replica_host,
# Large
compiler_hosts => $compiler_hosts,
# Extra Large
primary_postgresql_host => $primary_postgresql_host,
replica_postgresql_host => $replica_postgresql_host,
# Common Configuration
compiler_pool_address => $compiler_pool_address,
internal_compiler_a_pool_address => $internal_compiler_a_pool_address,
internal_compiler_b_pool_address => $internal_compiler_b_pool_address,
deploy_environment => $deploy_environment,
# Other
stagingdir => $stagingdir,
)
# Return a string banner reporting on what was done
return([$install_result, $configure_result])
}