Code Monkey home page Code Monkey logo

puppet-modules-nextgen's Introduction

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/ 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)

  • stdlib/ is PuppetLabs standard set of libraries. A collection of useful resources and functions that are used in the Example42 modules. This is a required prerequite for all the modules.

  • stdlib42/ is a set of fuctions and resources specific to Example42 modules. Also this module is a common prerequisite.

  • 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

  • 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.

puppet-modules-nextgen's People

Contributors

alvagante avatar

Watchers

James Cloos avatar Rok Pergarec avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.