Puppet Class: puppet::profile::puppet

Defined in:
manifests/profile/puppet.pp

Summary

Puppet installation

Overview

Puppet installation

Examples:

include puppet::profile::puppet

Parameters:

  • platform_name (Puppet::Platform) (defaults to: 'puppet7')

    Puppet platform name. Either puppet5, puppet6 or puppet7

  • puppetserver (Boolean) (defaults to: false)

    Whether it is Puppet server or not

  • sameca (Boolean) (defaults to: false)

    Whether Puppet server provides CA service or not If not - it is compiler Puppet server see puppet.com/docs/puppet/7/server/scaling_puppet_server.html If server is compiler then

    - no Puppet CA and
    - no PuppetDB on it
    
  • use_puppetdb (Boolean) (defaults to: true)

    Whether to use PuppetDB for this Puppet server or not

  • puppetdb_local (Boolean) (defaults to: true)

    Whether to install PuppetDB on same server or not

  • postgres_local (Boolean) (defaults to: true)

    Whether to manage PostgreSQL server installation on same server or not It has no effect if puppetdb_local is false

  • manage_database (Boolean) (defaults to: $postgres_local)

    Whether to manage Postgres database resources for PuppetDB on same server or not

  • server (Stdlib::Host) (defaults to: 'puppet')

    Puppet server name

  • puppetdb_server (Stdlib::Host) (defaults to: 'puppet')

    PuppetDB server name if external

  • ca_server (Optional[Stdlib::Host]) (defaults to: undef)
  • hosts_update (Boolean) (defaults to: false)

    Whether to setup puppet server hostnamr into /etc/hosts file

  • use_common_env (Boolean) (defaults to: false)
  • common_envname (Optional[String]) (defaults to: undef)
  • enc_envname (Optional[String]) (defaults to: undef)

    Default ENC environment repo is ‘enc’ This parameter is to define different name for it

  • r10k_crontab_setup (Boolean) (defaults to: false)

    Whether to setup crontab job to sync Puppet code

  • manage_webserver_conf (Boolean) (defaults to: false)

    Whether to manage webserver.conf or not

  • manage_fileserver_config (Boolean) (defaults to: true)
  • mount_points (Hash[String, Stdlib::Absolutepath]) (defaults to: {})


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

class puppet::profile::puppet (
  Puppet::Platform $platform_name = 'puppet7',
  Boolean $puppetserver = false,
  Boolean $sameca = false,
  Boolean $use_puppetdb = true,
  Boolean $puppetdb_local = true,
  Boolean $postgres_local = true,
  Boolean $manage_database = $postgres_local,
  Stdlib::Host $server = 'puppet',
  Stdlib::Host $puppetdb_server = 'puppet',
  # https://puppet.com/docs/puppet/7/server/scaling_puppet_server.html#directing-individual-agents-to-a-central-ca
  Optional[Stdlib::Host] $ca_server = undef,
  Boolean $hosts_update = false,
  Boolean $use_common_env = false,
  Optional[String] $common_envname = undef,
  Optional[String] $enc_envname = undef,
  Boolean $r10k_crontab_setup = false,
  Boolean $manage_webserver_conf = false,
  Boolean $manage_fileserver_config = true,
  Hash[String, Stdlib::Absolutepath] $mount_points = {},
) {
  if $puppetserver {
    if $sameca {
      if $puppetdb_local and $postgres_local {
        if $platform_name == 'puppet5' {
          class { 'lsys_postgresql':
            package_version => '9.6.23',
          }
        }
        else {
          class { 'lsys_postgresql': }
        }
      }

      class { 'puppet::profile::server':
        platform_name            => $platform_name,
        ca_server                => $ca_server,
        server                   => $server,
        sameca                   => $sameca,
        hosts_update             => $hosts_update,
        use_puppetdb             => $use_puppetdb,
        puppetdb_server          => $puppetdb_server,
        puppetdb_local           => $puppetdb_local,
        manage_database          => $manage_database,
        use_common_env           => $use_common_env,
        common_envname           => $common_envname,
        enc_envname              => $enc_envname,
        r10k_crontab_setup       => $r10k_crontab_setup,
        manage_webserver_conf    => $manage_webserver_conf,
        manage_fileserver_config => $manage_fileserver_config,
        mount_points             => $mount_points,
      }
      contain puppet::profile::server
    }
    else {
      class { 'puppet::profile::compiler':
        platform_name            => $platform_name,
        ca_server                => $ca_server,
        server                   => $server,
        use_common_env           => $use_common_env,
        common_envname           => $common_envname,
        use_puppetdb             => $use_puppetdb,
        puppetdb_server          => $puppetdb_server,
        enc_envname              => $enc_envname,
        r10k_crontab_setup       => $r10k_crontab_setup,
        manage_webserver_conf    => $manage_webserver_conf,
        manage_fileserver_config => $manage_fileserver_config,
        mount_points             => $mount_points,
      }
      contain puppet::profile::compiler
    }
  }
  else {
    class { 'puppet::profile::agent':
      platform_name => $platform_name,
      server        => $server,
      ca_server     => $ca_server,
    }
  }
}