Puppet Class: certs::foreman_proxy
- Inherits:
- certs
- Defined in:
- manifests/foreman_proxy.pp
Overview
Handles Foreman Proxy cert configuration
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 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 |
# File 'manifests/foreman_proxy.pp', line 8
class certs::foreman_proxy (
Stdlib::Fqdn $hostname = $certs::node_fqdn,
Array[Stdlib::Fqdn] $cname = $certs::cname,
Boolean $generate = $certs::generate,
Boolean $regenerate = $certs::regenerate,
Boolean $deploy = $certs::deploy,
Stdlib::Absolutepath $proxy_cert = '/etc/foreman-proxy/ssl_cert.pem',
Stdlib::Absolutepath $proxy_key = '/etc/foreman-proxy/ssl_key.pem',
Stdlib::Absolutepath $proxy_ca_cert = '/etc/foreman-proxy/ssl_ca.pem',
Stdlib::Absolutepath $foreman_ssl_cert = '/etc/foreman-proxy/foreman_ssl_cert.pem',
Stdlib::Absolutepath $foreman_ssl_key = '/etc/foreman-proxy/foreman_ssl_key.pem',
Stdlib::Absolutepath $foreman_ssl_ca_cert = '/etc/foreman-proxy/foreman_ssl_ca.pem',
Stdlib::Absolutepath $pki_dir = $certs::pki_dir,
Stdlib::Absolutepath $server_ca_cert = $certs::katello_server_ca_cert,
Optional[Stdlib::Absolutepath] $server_cert = $certs::server_cert,
Optional[Stdlib::Absolutepath] $server_key = $certs::server_key,
Optional[Stdlib::Absolutepath] $server_cert_req = $certs::server_cert_req,
String[2,2] $country = $certs::country,
String $state = $certs::state,
String $city = $certs::city,
String $expiration = $certs::expiration,
Stdlib::Absolutepath $default_ca_cert = $certs::katello_default_ca_cert,
Stdlib::Absolutepath $ca_key_password_file = $certs::ca_key_password_file,
String $group = 'foreman-proxy',
String $owner = 'root',
Stdlib::Filemode $private_key_mode = '0440',
Stdlib::Filemode $public_key_mode = '0444',
) inherits certs {
$proxy_cert_name = "${hostname}-foreman-proxy"
$foreman_proxy_client_cert_name = "${hostname}-foreman-proxy-client"
$foreman_proxy_ssl_client_bundle = "${pki_dir}/private/${foreman_proxy_client_cert_name}-bundle.pem"
if $server_cert {
cert { $proxy_cert_name:
ensure => present,
hostname => $hostname,
cname => $cname,
generate => $generate,
regenerate => $regenerate,
deploy => false,
custom_pubkey => $server_cert,
custom_privkey => $server_key,
custom_req => $server_cert_req,
build_dir => $certs::ssl_build_dir,
}
} else {
# cert for ssl of foreman-proxy
cert { $proxy_cert_name:
hostname => $hostname,
cname => $cname,
purpose => 'server',
country => $country,
state => $state,
city => $city,
org => 'FOREMAN',
org_unit => 'SMART_PROXY',
expiration => $expiration,
ca => $certs::default_ca,
generate => $generate,
regenerate => $regenerate,
deploy => false,
password_file => $ca_key_password_file,
build_dir => $certs::ssl_build_dir,
}
}
# cert for authentication of foreman_proxy against foreman
cert { $foreman_proxy_client_cert_name:
hostname => $hostname,
cname => $cname,
purpose => 'client',
country => $country,
state => $state,
city => $city,
org => 'FOREMAN',
org_unit => 'FOREMAN_PROXY',
expiration => $expiration,
ca => $certs::default_ca,
generate => $generate,
regenerate => $regenerate,
deploy => false,
password_file => $ca_key_password_file,
build_dir => $certs::ssl_build_dir,
}
if $deploy {
certs::keypair { $proxy_cert_name:
source_dir => "${certs::ssl_build_dir}/${hostname}",
key_file => $proxy_key,
key_owner => $owner,
key_group => $group,
key_mode => $private_key_mode,
cert_file => $proxy_cert,
cert_owner => $owner,
cert_group => $group,
cert_mode => $public_key_mode,
require => Cert[$proxy_cert_name],
}
file { $proxy_ca_cert:
ensure => file,
source => $default_ca_cert,
owner => $owner,
group => $group,
mode => '0440',
require => File[$default_ca_cert],
}
certs::keypair { $foreman_proxy_client_cert_name:
source_dir => "${certs::ssl_build_dir}/${hostname}",
key_file => $foreman_ssl_key,
key_owner => $owner,
key_group => $group,
key_mode => $private_key_mode,
cert_file => $foreman_ssl_cert,
cert_owner => $owner,
cert_group => $group,
cert_mode => $public_key_mode,
require => Cert[$foreman_proxy_client_cert_name],
}
file { $foreman_ssl_ca_cert:
ensure => file,
source => $server_ca_cert,
owner => $owner,
group => $group,
mode => '0440',
require => File[$server_ca_cert],
}
cert_key_bundle { $foreman_proxy_ssl_client_bundle:
ensure => present,
certificate => "${certs::ssl_build_dir}/${hostname}/${foreman_proxy_client_cert_name}.crt",
private_key => "${certs::ssl_build_dir}/${hostname}/${foreman_proxy_client_cert_name}.key",
force_pkcs_1 => true,
owner => 'root',
group => $group,
mode => $public_key_mode,
require => Cert[$foreman_proxy_client_cert_name],
}
}
}
|