Forge Home


Create a message of the day that includes metadata about the node


849 latest version

5.0 quality score

Version information

  • 1.0.0 (latest)
released Sep 17th 2021
This version is compatible with:
  • Puppet Enterprise 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x
  • Puppet >= 6.1.0 < 8.0.0
  • , , , , , , , ,

Start using this module

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

Add this module to your Puppetfile:

mod 'ploperations-meta_motd', '1.0.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add ploperations-meta_motd
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install ploperations-meta_motd --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.



ploperations/meta_motd — version 1.0.0 Sep 17th 2021


Table of Contents


Public Classes

  • meta_motd: Update /etc/motd with information about the host

Private Classes

  • meta_motd::keyvalue::blank: Adds blank link after the meta_motd::keyvalue entries
  • meta_motd::register::blank: Adds blank link after the meta_motd::register entries

Defined types

Public Defined types

Private Defined types

  • meta_motd::register: Deprecated: add an old-style entry to the MOTD.



Update /etc/motd with information about the host.

  • If the system is a Puppet Enterprise server an entry will automatically be added to the MOTD showing what version of PE is installed.
  • Similarly, an entry will be added showing what the certname used by the system is if the FQDN and the certname do not match.

Note: It is sometimes useful to disable changes to /etc/motd when comparing runs in different environments. You can do that like so: sudo FACTER_suppress_motd=true puppet agent --test ...


Set MOTD template based on a conditional expression
class profile::motd {
  case $profile::server::someparam {
    /infranext/: { $motd_template = 'meta_motd/colossal-puppet-dag.epp' }
    default:     { $motd_template = 'meta_motd/short-puppet.epp' }

  class { 'meta_motd':
    epp_template => $motd_template,
    epp_params   => {
      roles    => lookup('classes', Array[String], 'unique', []),
      location => $facts['whereami'],
Use a template stored in your profile module
class { 'meta_motd':
  epp_template => 'profile/motd.epp',


The following parameters are available in the meta_motd class:


Data type: String[1]

This is the path to an EPP template passed into content parameter of a concat::fragment resource. All templates in this module are avaialable by setting this to meta_motd/<name of template file>. This can also be set to use an EPP templates from another module by replacing the meta_motd part of the path.

Default value: 'meta_motd/short-puppet.epp'


Data type: Hash

This represents the parameters that will be passed to the template referenced in $epp_template. If you have defined a template that does not need parameters you can set this to {}.

Default value: { roles => lookup('classes', Array[String], 'unique', []), location => undef, }

Defined types


Add a fragment to the MOTD, if allowed


meta_motd::fragment { 'EoL Notice':
  content => @(END),
    NOTICE: this system is scheduled for decommissioning within the next two weeks
    Contact IT if this poses a problem for you or your team.
    | END


The following parameters are available in the meta_motd::fragment defined type:


Data type: String[1]

the content to add to the MOTD

Default value: $title


Data type: String[2]

the order option to be passed to the concat::fragment

Default value: '50'


Add a line to the "key: value" section of the MOTD. All such values go between the header and entries added via meta_motd::register. Services added by the profile_metadata module will also be below these entries.


meta_motd::keyvalue { "PE build: ${facts['pe_build']}": }
meta_motd::keyvalue { "Jenkins alias: ${url}": }


The following parameters are available in the meta_motd::keyvalue defined type:


Data type: String[5]

A string in "key: value" format. The key must start with a word character (regex \w). It can then have zero or more spaces, word characters, or dashes. Next it must contain another word character followed by a colon and a space.

Default value: $title