mirror of
https://github.com/Adam-Ant/puppet-motd
synced 2024-12-20 08:04:35 +00:00
Initial Commit
This commit is contained in:
commit
56b3923c99
27
README.md
Normal file
27
README.md
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# motd
|
||||||
|
|
||||||
|
#### Table of Contents
|
||||||
|
|
||||||
|
1. [Description](#description)
|
||||||
|
1. [Setup - The basics of getting started with motd](#setup)
|
||||||
|
* [What motd affects](#what-motd-affects)
|
||||||
|
1. [Usage - Configuration options and additional functionality](#usage)
|
||||||
|
## Description
|
||||||
|
|
||||||
|
This module configures a standardized motd file for all hosts, including node hostname in ascii art for easy host recognition.
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
Make sure to include the below in the puppet master, to install dependencies:
|
||||||
|
|
||||||
|
`include motd::install`
|
||||||
|
|
||||||
|
### What motd affects
|
||||||
|
|
||||||
|
This module replaces /etc/motd, and nothing else. It requires Facter>=3.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Simply include the motd class into your nodes, no configuration is required.
|
||||||
|
|
||||||
|
`include ::motd`
|
12
examples/init.pp
Normal file
12
examples/init.pp
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# The baseline for module testing used by Puppet Inc. is that each manifest
|
||||||
|
# should have a corresponding test manifest that declares that class or defined
|
||||||
|
# type.
|
||||||
|
#
|
||||||
|
# Tests are then run by using puppet apply --noop (to check for compilation
|
||||||
|
# errors and view a log of events) or by fully applying the test in a virtual
|
||||||
|
# environment (to compare the resulting system state to the desired state).
|
||||||
|
#
|
||||||
|
# Learn more about module testing here:
|
||||||
|
# https://docs.puppet.com/guides/tests_smoke.html
|
||||||
|
#
|
||||||
|
include ::motd
|
2
examples/install.pp
Normal file
2
examples/install.pp
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Put this under the master node to install figlet - needed for this module
|
||||||
|
include motd::install
|
31
manifests/init.pp
Normal file
31
manifests/init.pp
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# Class: motd
|
||||||
|
# ===========================
|
||||||
|
#
|
||||||
|
# Install a standardized motd across all your nodes.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Examples
|
||||||
|
# --------
|
||||||
|
#
|
||||||
|
# @example
|
||||||
|
# include ::motd
|
||||||
|
#
|
||||||
|
# Authors
|
||||||
|
# -------
|
||||||
|
#
|
||||||
|
# Adam Dodman <hello@adam-ant.co.uk>
|
||||||
|
#
|
||||||
|
# Copyright
|
||||||
|
# ---------
|
||||||
|
#
|
||||||
|
# Copyright 2018 Adam Dodman, unless otherwise noted.
|
||||||
|
#
|
||||||
|
class motd {
|
||||||
|
$motd_hash = {
|
||||||
|
'ascii' => generate('/bin/sh', '-c', "/usr/bin/figlet -cw 60 ${$facts['networking']['hostname']}"),
|
||||||
|
}
|
||||||
|
|
||||||
|
file { '/etc/motd':
|
||||||
|
content => epp('motd/motd.epp', $motd_hash),
|
||||||
|
}
|
||||||
|
}
|
19
manifests/install.pp
Normal file
19
manifests/install.pp
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# This manifest is used to install figlet, required by the motd package.
|
||||||
|
# It should only be required on the puppet master.
|
||||||
|
|
||||||
|
class motd::install {
|
||||||
|
if $facts['os']['family'] == 'Redhat' {
|
||||||
|
include repoforge
|
||||||
|
|
||||||
|
package { 'figlet':
|
||||||
|
ensure => present,
|
||||||
|
require => Yumrepo['rpmforge'],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
package { 'figlet':
|
||||||
|
ensure => present,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
18
metadata.json
Normal file
18
metadata.json
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"name": "adamant-motd",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"author": "Adam Dodman",
|
||||||
|
"summary": "Install a standardized MOTD banner",
|
||||||
|
"license": "GPLv3",
|
||||||
|
"source": "",
|
||||||
|
"project_page": "github.com/REPLACEME",
|
||||||
|
"issues_url": "github.com/REPLACEISSUE",
|
||||||
|
"dependencies": [
|
||||||
|
{
|
||||||
|
"name": "puppetlabs-stdlib",
|
||||||
|
"version_requirement": ">= 1.0.0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"data_provider": null
|
||||||
|
}
|
||||||
|
|
6
spec/classes/init_spec.rb
Normal file
6
spec/classes/init_spec.rb
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
require 'spec_helper'
|
||||||
|
describe 'motd' do
|
||||||
|
context 'with default values for all parameters' do
|
||||||
|
it { should contain_class('motd') }
|
||||||
|
end
|
||||||
|
end
|
1
spec/spec_helper.rb
Normal file
1
spec/spec_helper.rb
Normal file
@ -0,0 +1 @@
|
|||||||
|
require 'puppetlabs_spec_helper/module_spec_helper'
|
17
templates/motd.epp
Normal file
17
templates/motd.epp
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<%- |
|
||||||
|
$ascii,
|
||||||
|
| -%>
|
||||||
|
|
||||||
|
------------------------------------------------------------
|
||||||
|
<%= $ascii %>
|
||||||
|
------------------------------------------------------------
|
||||||
|
Welcome to <%= $facts['networking']['fqdn'] %>
|
||||||
|
OS: <%= $facts['os']['name'] %> <%= $facts['os']['release']['full'] %>
|
||||||
|
OS Family: <%= $facts['os']['family'] %>
|
||||||
|
Architecture: <%= $facts['os']['architecture'] %>
|
||||||
|
Kernel Version: <%= $facts['kernelversion'] %>
|
||||||
|
IP: <%= $facts['networking']['ip'] %>
|
||||||
|
RAM: <%= $facts['memory']['system']['total'] %>
|
||||||
|
------------------------------------------------------------
|
||||||
|
This system is managed by Puppet version <%= $facts['puppetversion'] %>
|
||||||
|
------------------------------------------------------------
|
Loading…
Reference in New Issue
Block a user