Puppet Class: puppet::repo

Inherits:
puppet::globals
Defined in:
manifests/repo.pp

Summary

Setup Puppet Platform repository

Overview

puppet::repo

Setup Puppet Platform repository

Examples:

include puppet::repo

Parameters:

  • package_name (String) (defaults to: $puppet::globals::package_name)
  • deccomission_packages (Array[String]) (defaults to: $puppet::globals::deccomission_packages)
  • package_filename (String) (defaults to: $puppet::globals::package_filename)
  • platform_repository (String) (defaults to: $puppet::globals::platform_repository)
  • package_provider (String) (defaults to: $puppet::params::package_provider)


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

class puppet::repo (
  String  $package_name = $puppet::globals::package_name,
  Array[String] $deccomission_packages = $puppet::globals::deccomission_packages,
  String $package_filename = $puppet::globals::package_filename,
  String $platform_repository = $puppet::globals::platform_repository,
  String $package_provider = $puppet::params::package_provider,
) inherits puppet::globals {
  $manage_repo = $puppet::manage_repo

  $tmpdir = $puppet::globals::tmpdir
  $package_source = $puppet::globals::package_source
  $package_check = $puppet::globals::package_check

  if $manage_repo {
    # use own tmp directory to not interferre with puppet_agent module
    file { $tmpdir:
      ensure => directory,
    }

    exec { 'puppet-release':
      command => "curl ${platform_repository} -f -s -o ${package_source}",
      cwd     => $tmpdir,
      path    => '/bin:/usr/bin',
      creates => $package_source,
      unless  => $package_check,
      require => File[$tmpdir],
    }

    package { 'puppet-release':
      name     => $package_name,
      provider => $package_provider,
      source   => $package_source,
      require  => Exec['puppet-release'],
    }

    $deccomission_packages.each |String $puppet_release| {
      package { $puppet_release:
        ensure => absent,
        before => Package['puppet-release'],
      }
    }
  }
}