Skip to content

ejmvar/puppet-modules-nextgen

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Example42 Puppet Modules 2.0 : The Next Generation

This repository collects all the Next-gen Example42 Puppet modules ( www.example42.com ), included here as git submodules.

The offical repository of Example42 Puppet modules ( github.com/example42/puppet-modules ) is going to contain both old and next-gen modules for a transition period that should last until all the modules are migrated. Old and new modules can cohexist on the same setup, but new modules have different usage patterns.

INSTALLATION AND UPDATES

You can get the Next-gen only module set with:

git clone --recursive git://github.com/example42/puppet-modules-nextgen.git

To update your local copy with the upstream version:

cd /etc/puppet/modules # Or the directory where's you local copy
git pull origin master
git submodule init
git submodule update
git submodule foreach git pull origin master

FEATURES

The main features of Example42 Puppet modules (second generation):

  • Coherent and standardized structure, logic and usage based on best practices

  • Cross OS support (main targets are Redhat and Ubuntu derivatives)

  • Use of parametrized classes and fully qualified variables for Puppet Telly compliance

  • Full and coherent API exposure and classes introspection

  • Separation between core module and user’s customizations, no arbitrary logic enforced.

  • Optional Puppi support for application deployments and “Puppet knowledge to the CLI”

  • Optional automatic Monitoring support based on an extensible set of tools

  • Optional automatic Firewalling support

  • Decommissiong support: you can remove (almost) whatever you’ve added

  • Complete documentation compliant with PuppetDoc

  • Integrated rspec-puppet tests. Code puppet-lint compliant (as much as possible)

  • Based on common “foo” templates for easy scaffolding on the modules.

SPECIAL MODULES

Generally there’s a module for each application and each module is a separated git submodule than can be indipendently retrived from GitHub. There are some special modules or directories with different functions:

  • Example42-tools/ is actually not a module. It contains scripts useful for maintenance of the modules. No Puppet code there.

  • Example42-documentation/ contains documentation about Example42 Puppet modules and their usage.

  • example42/ is a sample project/customer/site specific module. It contains files and subclasses specific to the Example42 test lab. Here are supposed to be placed all the customizations, and ideally this module (or the equivalent with your company name) is one of the few parts where to make changes.

  • foo/ and foo_whatever/ are sample template modules that are used for scaffolding new modules (that then are customized and enriched according to the specific application)

  • puppi/ is an Example42 Puppet module that can be used to automate and simplify the deployment of (web) applications and provides a CLI command that exposes most of the information that Puppet has (and defines) about the system. Puppi is a required dependency for all the Example42 modules because it contains some functions used by them, BUT you are not forced to use it. You just have it among your modules to retrieve (via pluginsync) the common functions.

  • monitor/ is an Example42 “meta-module” used for monitoring abstraction. It contains the definitions to use different monitor tools for a set of common resources

  • firewall/ is an Example42 “meta-module” used for firewalling abstraction.

About

The next generation of Example42 Puppet Modules - Require Puppet > 2.6.x

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published