Forge Home


Manage EDAC utility installation and configuration


8,618 latest version

5.0 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

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:
  • , ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'treydock-edac', '1.0.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add treydock-edac
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install treydock-edac --version 1.0.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Tags: redhat, centos, edac, ecc


treydock/edac — version 1.0.0 Aug 23rd 2015


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


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.


###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


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.



####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



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. Default is OS specific.


edac service name. Default is OS specific.


Sets the edac service enable property. Default is true.


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


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



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',


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

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


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


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


Further Information