Puppet Class: puppet_agent::osfamily::aix

Defined in:
manifests/osfamily/aix.pp

Summary

Used to determine the puppet-agent package location for AIX OSes.

Overview



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

class puppet_agent::osfamily::aix {
  assert_private()

  if $facts['os']['name'] != 'AIX' {
    fail("${facts['os']['name']} not supported")
  }

  if $puppet_agent::is_pe != true {
    fail('AIX upgrades are only supported on Puppet Enterprise')
  }

  $pe_server_version = pe_build_version()

  # in puppet versions later than 4 we began using single agent packages for
  # multiple version of AIX. The support sequence is as follows:
  #
  # puppet 5 up to 5.5.22:
  #     * AIX version 6.1 < aix-6.1-power package
  #     * AIX version 7.1 < aix-7.1-power package
  #     * AIX version 7.2 < aix-7.1-power package
  #
  # puppet 6 up to 6.19.1 and puppet 7.0.0:
  #     * AIX version 6.1 < aix-7.1-power package
  #     * AIX version 7.1 < aix-7.1-power package
  #     * AIX version 7.2 < aix-7.1-power package
  #
  # puppet 8:
  #     * AIX version 7.2 < aix-7.2-power package
  #
  # All other versions will now _only_ use the aix-7.1-power packages (i.e. we now only ship
  # one package to support all aix versions).
  #
  # The following will update the aix_ver_number variable to identify which package to install based
  # on puppet collection, package version and AIX version.
  $_aix_ver_number = regsubst($facts['platform_tag'],'aix-(\d+\.\d+)-power','\1')
  if $_aix_ver_number {
    if $puppet_agent::collection =~ /^puppet8/ {
      $aix_ver_number = '7.2'
    } elsif $puppet_agent::collection =~ /^puppet7/ {
      $aix_ver_number = '7.1'
    } else {
      # 6.19.1 is the last puppet6 release that ships AIX 6.1 packages
      $aix_ver_number = versioncmp($puppet_agent::prepare::package_version, '6.19.1') ? {
        1       => '7.1',
        default => '6.1'
      }
    }
  }

  if $puppet_agent::absolute_source {
    $source = $puppet_agent::absolute_source
  } elsif $puppet_agent::alternate_pe_source {
    $source = "${puppet_agent::alternate_pe_source}/packages/${pe_server_version}/aix-${aix_ver_number}-power/${puppet_agent::package_name}-${puppet_agent::prepare::package_version}-1.aix${aix_ver_number}.ppc.rpm"
  } elsif $puppet_agent::source {
    $source = "${puppet_agent::source}/packages/${pe_server_version}/aix-${aix_ver_number}-power/${puppet_agent::package_name}-${puppet_agent::prepare::package_version}-1.aix${aix_ver_number}.ppc.rpm"
  } else {
    $source = "${puppet_agent::aix_source}/${pe_server_version}/aix-${aix_ver_number}-power/${puppet_agent::package_name}-${puppet_agent::prepare::package_version}-1.aix${aix_ver_number}.ppc.rpm"
  }

  class { 'puppet_agent::prepare::package':
    source => $source,
  }
  contain puppet_agent::prepare::package
}