Puppet Class: hp_spp::hphealth

Inherits:
hp_spp::params
Defined in:
manifests/hphealth.pp

Overview

Class: hp_spp::hphealth

This class handles installation of the HP Service Pack for ProLiant Health Agent.

Parameters:

ensure

Ensure if present or absent. Default: present

autoupgrade

Upgrade package automatically, if there is a newer version. Default: false

service_ensure

Ensure if service is running or stopped. Default: running

service_enable

Start service at boot. Default: true

Actions:

Installs the HP System Health Application and Command Line Utilities. Installs the RILOE II/iLO online configuration utility. Installs the HP Command Line Array Configuration Utility. Installs OpenIPMI drivers and/or HP iLO Channel Interface Driver dependent upon OS version.

Requires:

Class

Authors:

Mike Arnold <mike@razorsedge.org>

Copyright © 2013 Mike Arnold, unless otherwise noted.

Parameters:

  • ensure (Any) (defaults to: 'present')
  • autoupgrade (Any) (defaults to: false)
  • service_ensure (Any) (defaults to: 'running')
  • service_enable (Any) (defaults to: true)


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
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
138
# File 'manifests/hphealth.pp', line 44

class hp_spp::hphealth (
  $ensure         = 'present',
  $autoupgrade    = false,
  $service_ensure = 'running',
  $service_enable = true
) inherits hp_spp::params {
  # Validate our booleans
  validate_bool($autoupgrade)
  validate_bool($service_enable)

  case $ensure {
    /(present)/: {
      if $autoupgrade == true {
        $package_ensure = 'latest'
      } else {
        $package_ensure = 'present'
      }

      if $service_ensure in [ running, stopped ] {
        $service_ensure_real = $service_ensure
        $service_enable_real = $service_enable
      } else {
        fail('service_ensure parameter must be running or stopped')
      }
    }
    /(absent)/: {
      $package_ensure = 'absent'
      $service_ensure_real = 'stopped'
      $service_enable_real = false
    }
    default: {
      fail('ensure parameter must be present or absent')
    }
  }

  case $::manufacturer {
    'HP': {
      #Class['hp_spp::repo'] -> Class['hp_spp::hphealth']

      # hp-OpenIPMI is only required on older EL5 releases.  From EL5.5, it is
      # replaced by OpenIPMI.
      package { 'hp-OpenIPMI':
        ensure => $package_ensure,
        name   => $hp_spp::params::ipmi_package_name,
      }

      if ! defined(Package['libxslt']) {
        package { 'libxslt':
          ensure => 'present',
        }
      }

      package { 'hponcfg':
        ensure  => $package_ensure,
        require => Package['libxslt'],
      }

      package { 'hp-health':
        ensure => $package_ensure,
      }

      if $hp_spp::params::arraycli_package_name {
        package { $hp_spp::params::arraycli_package_name:
          ensure => $package_ensure,
        }
      }

      service { 'hp-health':
        ensure     => $service_ensure_real,
        enable     => $service_enable_real,
        hasrestart => true,
        hasstatus  => true,
        require    => [ Package['hp-health'], Package['hp-OpenIPMI'], ],
      }

      # TODO: What happens to Package['hp-ilo'] when $ensure = absent?
      # hp-ilo is only required on older EL5 releases.  From EL5.3, it is no
      # longer needed.
      package { 'hp-ilo':
        ensure => $hp_spp::params::ilo_package_ensure,
      }

      # TODO: What happens to Service['hp-ilo'] when $ensure = absent?
      service { 'hp-ilo':
        ensure     => $hp_spp::params::ilo_service_ensure,
        enable     => $hp_spp::params::ilo_service_enable,
        hasrestart => true,
        hasstatus  => true,
        require    => Package['hp-ilo'],
      }
    }
    # If we are not on HP hardware, do not do anything.
    default: { }
  }
}