edac

Manage EDAC utility installation and configuration

Trey Dockendorf

treydock

10,211 downloads

7,445 latest version

5.0 quality score

Version information

  • 1.0.0 (latest)
  • 0.1.1
  • 0.1.0
  • 0.0.4
  • 0.0.3
  • 0.0.2
released Aug 23rd 2015
This version is compatible with:
  • RedHat
    ,
    CentOS
    ,
    Scientific

Start using this module

Documentation

treydock/edac — version 1.0.0 Aug 23rd 2015

puppet-edac

Puppet Forge Build Status

####Table of Contents

  1. Overview
  2. Module Description
  3. Setup - The basics of getting started with puppet-edac
  1. Usage - Configuration options and additional functionality
  2. Reference - Parameter and detailed reference to all options
  1. Limitations
  2. Contributing
  3. Development
  4. TODO
  5. Further Information

Overview

This module manages installation and configuration of edac utilities for Linux kernel EDAC drivers.

Module Description

This module will install the necessary packages to use EDAC and start the necessary service. The labels used by EDAC are also managed and custom labels can be added by using the edac::label defined type.

Once this module is applied to a system the edac-util command can be used to query corrected and uncorrected memory errors. If labels exist for your host's motherboard then memory DIMMs with errors can be easily identified.

Setup

###What puppet-edac affects

  • The edac-utils package is installed - the actual name may vary depending on your Operating System
  • The labels database, /etc/edac/labels.db is populated by the default labels and any custom labels defined
  • The labels are registered with edac
  • The edac service is set to start on boot

Usage

For standard edac-utils management

class { 'edac': }

To add additional labels to labels.db

edac::label { 'H8DGU':
  content => template('supermicro/h8dgu.erb'),
}

The example above is provided by the edac::extra::supermicro class and automatically included if the parameter with_extra_labels is true.

Reference

###Classes

####Public classes

  • edac: Installs and configures necessary resources for EDAC
  • edac::extra: Includes the classes that are considered "extra" and not part of stock EDAC install
  • edac::extra::supermicro: Defines edac labels specific to Supermicro motherboards that are not a part of standard edac install

####Private classes

  • edac::params: Defines module parameter defaults based on fact values.

###Class parameters

####edac

#####ensure

This determines if the managed resources are installed and configured, or if they should be removed. Defaults to present and valid values are present and absent.

#####edac_utils_package_name

edac utils package. Default is OS specific.

#####edac_service_name

edac service name. Default is OS specific.

#####edac_service_enable

Sets the edac service enable property. Default is true.

#####labelsdb_file

Location of the edac labels database file. Default is OS specific.

#####with_extra_labels

Boolean that determines if the module provided extra labels will be installed. Defaults is true.

###Defines

####edac::label

Defines EDAC labels for the motherboard FOO.

edac::label { 'FOO':
  content => template('site_edac/foo.erb'),
}

Defines two custom EDAC labels with their order set so FOO comes before BAR when written to the edac label file.

edac::label { 'FOO':
  content => template('site_edac/foo.erb'),
  order   => '98',
}
edac::label { 'BAR':
  content => template('site_edac/bar.erb'),
  order   => '99',
}

Limitations

This module has only been tested against the following operating systems:

  • CentOS 6.x
  • Scientific Linux 6x
  • CentOS 5.9

Contributing

The best way to contribute is providing additional labels for motherboards.

Development

Testing requires the following dependencies:

  • rake
  • bundler

Install gem dependencies

bundle install

Run unit tests

bundle exec rake test

If you have Vagrant >= 1.2.0 installed you can run system tests

bundle exec rake beaker

TODO

Further Information