Puppet Class: certs::puppet

Inherits:
certs
Defined in:
manifests/puppet.pp

Overview

Class for handling Puppet cert configuration

Parameters:

  • hostname (Stdlib::Fqdn) (defaults to: $certs::node_fqdn)
  • cname (Array[Stdlib::Fqdn]) (defaults to: $certs::cname)
  • generate (Boolean) (defaults to: $certs::generate)
  • regenerate (Boolean) (defaults to: $certs::regenerate)
  • deploy (Boolean) (defaults to: $certs::deploy)
  • client_cert (Stdlib::Absolutepath) (defaults to: $certs::puppet_client_cert)
  • client_key (Stdlib::Absolutepath) (defaults to: $certs::puppet_client_key)
  • ssl_ca_cert (Stdlib::Absolutepath) (defaults to: $certs::puppet_ssl_ca_cert)
  • country (String[2,2]) (defaults to: $certs::country)
  • state (String) (defaults to: $certs::state)
  • city (String) (defaults to: $certs::city)
  • expiration (String) (defaults to: $certs::expiration)
  • ca_key_password_file (Stdlib::Absolutepath) (defaults to: $certs::ca_key_password_file)
  • server_ca (Stdlib::Absolutepath) (defaults to: $certs::katello_server_ca_cert)
  • pki_dir (Stdlib::Absolutepath) (defaults to: $certs::pki_dir)
  • owner (String) (defaults to: 'root')
  • group (String) (defaults to: 'puppet')


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
# File 'manifests/puppet.pp', line 2

class certs::puppet (
  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 $client_cert = $certs::puppet_client_cert,
  Stdlib::Absolutepath $client_key = $certs::puppet_client_key,
  Stdlib::Absolutepath $ssl_ca_cert = $certs::puppet_ssl_ca_cert,
  String[2,2] $country = $certs::country,
  String $state = $certs::state,
  String $city = $certs::city,
  String $expiration = $certs::expiration,
  Stdlib::Absolutepath $ca_key_password_file = $certs::ca_key_password_file,
  Stdlib::Absolutepath $server_ca = $certs::katello_server_ca_cert,
  Stdlib::Absolutepath $pki_dir = $certs::pki_dir,
  String $owner = 'root',
  String $group = 'puppet',
) inherits certs {
  $puppet_client_cert_name = "${hostname}-puppet-client"

  # cert for authentication of puppetmaster against foreman
  cert { $puppet_client_cert_name:
    hostname      => $hostname,
    cname         => $cname,
    purpose       => 'client',
    country       => $country,
    state         => $state,
    city          => $city,
    org           => 'FOREMAN',
    org_unit      => 'PUPPET',
    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 {
    file { "${pki_dir}/puppet":
      ensure => directory,
      owner  => $owner,
      group  => $group,
      mode   => '0750',
    }

    certs::keypair { $puppet_client_cert_name:
      source_dir => "${certs::ssl_build_dir}/${hostname}",
      key_file   => $client_key,
      key_owner  => $owner,
      key_group  => $group,
      key_mode   => '0440',
      cert_file  => $client_cert,
      cert_owner => $owner,
      cert_group => $group,
      cert_mode  => '0440',
      require    => Cert[$puppet_client_cert_name],
    }

    file { $ssl_ca_cert:
      ensure  => file,
      source  => $server_ca,
      owner   => $owner,
      group   => $group,
      mode    => '0440',
      require => File[$server_ca],
    }
  }
}