Forge Home


Configures the smartd daemon from smartmontools


10,132 latest version

2.8 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

  • 0.0.2 (latest)
  • 0.0.1
released Jul 9th 2013

Start using this module

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

Add this module to your Puppetfile:

mod 'csail-smartd', '0.0.2'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add csail-smartd
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install csail-smartd --version 0.0.2

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.



csail/smartd — version 0.0.2 Jul 9th 2013


This is the smartd module and class. It configures the smartd daemon, which comes with smartmontools, and works on FreeBSD and Debian-ish Linux systems. If your hardware supports it, smartd can automatically probe for the drives, but if they are hidden behind a RAID controller, it will need additional help. The module includes a facter plugin to identify drives hiding behind an LSI MegaRAID/Dell PERC controller on Linux systems if you have the LSI proprietary MegaCli tool installed; we don't have any FreeBSD machines with this controller so haven't written the necessary code to use FreeBSD's standard mfiutil(8) utility instead. The shell_config module is required to edit a Debian-specific configuration file; other OS families do not require it.

The module automatically configures a virtual monit::monitor resource (tag => default) to keep track of smartd. Note that smartd can take a very long time to (re)start, so if you have a large number of disk devices (e.g., 200 on a big ZFS file server) you will need to adjust monit's startup delay.

Configuring smartd

The following parameters are defined for the smartd class:

  • ensure: has standard Puppet ensure semantics (and supports purged state if your package provider does) (default present)
  • autoupdate: true if you want to automatically upgrade the package whenever the puppet agent runs (default false)
  • package_name: name of the package which contains smartd (default smartmontools which is the only name we've seen on any OS)
  • service_name: name of the service that smartd runs under (default smartd, which again is the only one we've ever seen)
  • scan: true if you want smartd to automatically detect all of the SMART-capable drives in the system; otherwise false (default true)
  • devices: array of devices you want to explicitly configure smartd to examine (default none)
  • device_opts: hash of options to apply to each device instead of the default ones (default none)
  • mail_to: email address to mail alerts to (default root)
  • schedule: how frequently to send alerts (see the smartd manual page under the -M option for more details) (default daily)
  • config_file: where the smartd configuration is stored (default is OS-specific)

Currently, drives behind an LSI MegaRAID controller will be automatically probed and added to the smartd configuration file, if the MegaCli utility is installed. There is no way to turn this behavior off. This is arguably a bug.


See the file LICENSE.