Puppet Class: masterless::puppet::package

Defined in:
manifests/puppet/package.pp

Summary

A short summary of the purpose of this class

Overview

A description of what this class does

Examples:

include masterless::puppet::package

Parameters:

  • pkgbasename (String[1]) (defaults to: '')


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

class masterless::puppet::package (
  String[1] $pkgbasename = '',
) {

  $pkgdmgurl = $facts['os']['release']['major'] ? {
    '15'      => "https://downloads.puppetlabs.com/mac/puppet6/10.11/x86_64/${pkgbasename}.osx10.11.dmg", # El Capitan
    '16'      => "https://downloads.puppetlabs.com/mac/puppet6/10.12/x86_64/${pkgbasename}.osx10.12.dmg", # Sierra
    '17'      => "https://downloads.puppetlabs.com/mac/puppet6/10.13/x86_64/${pkgbasename}.osx10.13.dmg", # High Sierra
    '18'      => "https://downloads.puppetlabs.com/mac/puppet6/10.14/x86_64/${pkgbasename}.osx10.14.dmg", # Mojave
  }

  if $facts['os']['family'] != 'Darwin' {
    warning('The masterless::package class only supports macOS.')
  } elsif $facts['puppet_user'] != 'root' {
    warning('Can only manage puppet-agent pkgdmg when running as root, skipping...')
  } else {
    # TODO: Bug? Puppet skips this resource if dots in filename
    package { regsubst($pkgbasename, '\.', '_', 'G'):
      ensure   => installed,
      provider => pkgdmg,
      source   => $pkgdmgurl,
    }
  }

}