Skip to content

pdehlke/puppet-modules

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EXAMPLE42 PUPPET MODULES
Released under the terms of GPL 3

Official website:
http://www.example42.com

A collection of modules for Puppet with the following targets:
- Multi OS support and easy integration of new OS
- Sysadmin oriented approach (for easier integration and customization)
- Support for a growing number of applications
- Adherence to Puppet modules standards
- No enforcing of a specific logic for files management.
- Separation of project's custom settings from application general management
- Plug & Play approach: define variables (defaults are provided) and include the main class

Some research and experimentation is done on:
- Definition and use of enhanced abstraction classes such as backup, monitor, firewall
- Definition of a standard and pluggable define for inline modifications
- Setup of Puppet toasters and baselines

NOTE: The whole project is a work in progress, the modules have been made in different 
times and have different levels of coherency and integration.


MODULES STANDARD STRUCTURE
Newer modules are based on the standard template defined in the "foo" module.
Use the script "example42_module_clone.sh" to clone a new module based on the foo template.
Use the script "example42_project_rename.sh" in a module to change all the references
to example42 to your custom project

This template provides the following files:
# Documentation and metadata
foo/README - The module's general documentation
foo/Modulefile - Metadata for the Puppet Forge
# Main classes
foo/manifests/init.pp - Contains the base module class 
foo/manifests/params.pp - Contains all the module variables
# Additional classes
foo/manifests/absent.pp - foo::absent class that removes foo package
foo/manifests/disable.pp - foo::disable class that disables foo service (boot and runtime)
foo/manifests/disableboot.pp - foo::disableboot class that disables foo service at boot
# Extended classes (experimental)
foo/manifests/monitor.pp - Extended class to abstract monitoring logic
foo/manifests/backup.pp - Extended class to abstract backup logic
foo/manifests/firewall.pp - Extended class to abstract firewalling logic
# Custom project related classes 
foo/manifest/example42.pp - Sample project related class for general customizations
foo/manifest/monitor/example42.pp - Sample project related class for monitor customizations
foo/manifest/backup/example42.pp - Sample project related class for backup customizations
# Generic configuration inline define (experimental)
foo/manifests/conf.pp - Define for inline replacements in foo's main config file
# Debug 
foo/manifests/debug.pp - Debug class. Activated if ($debug == yes)
foo/templates/variables_foo.erb - Debug template with all the modules parameters 


# GENERAL VARIABLES
Example42 modules can be used with whatever nodes infrastructure you may define: you can use
nodes definitions in Puppet manifests or an external node tool such as the Dashboard or Foreman.
To use the modules you just have to include them and provide the eventual variables they need
(defaults are set if none is provided).
There are some general site-wide variables that can be used to fully use these modules:
$my_project - Defines the name of your project and cab be used to automatically load custom
              project related classes
$debug - If set to "yes" it enables some useful (not resource intensive) stuff for debugging
         (check in /var/lib/puppet/debug/). 
$monitor - If set to "yes" you enable autoloading of monitor extended classes.
           Check Example42 monitor module for more info
$monitor_tool - An array that defines the monitor tools to use (ie: monit, munin, nagios...)
$backup - If set to "yes" you enable autoloading of backup extended classes.
          Check Example42 backup module for more info
$firewall - If set to "yes" you enable autoloading of firewall extended classes.
            Check Example42 firewall module for more info
Please note that currently the monitor, backup and firewall functions are experimental.

About

Example(42) complete set of Puppet Modules

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 72.1%
  • Shell 22.4%
  • PHP 3.6%
  • Vim Script 1.9%