Coder Social home page Coder Social logo

puppet-modules's Introduction

EXAMPLE42 PUPPET MODULES

Released under the terms of Apache2 licence. Copyright Alessandro Franceschi / Lab42

Official website: www.example42.com

Autogenerated PuppetDocs are available at: www.example42.com/puppetdoc/modules/

Check the [DOCS] directory for more documentation.

IMPORTANT NOTICE:

The Example42 modules set is going to have some heavy modifications:

  • The “old” modules are kept on this repository under the branch 1.0. You will find only bug-fixed for the old style modules there.

  • The “nextgen” modules, still under development and research are placed in the dedicated repository: github.com/example42/puppet-modules-nextgen

    Read www.example42.com/?q=NextGen for more info about them

  • In the master branch of this repository I’m going to merge old and new modules: all the new modules are git submodules, the old ones are not submodules

The reason for this choice is that I need to test the new modules in a live environment and that, in the mid-term, this repository is going to be converted totally to the next-gen module set.

Usage of old and new modules is rather different so I reccommend extreme attention if you want to update your current local repository from the upstream master (stick to 1.0 branch to avoid surprises).

If you don’t intend to keep your local copy aligned to the upstream version you won’t have problems, though I reccommend to migrate to the new modules sooner or later.

INSTALLATION

You can retrieve the Example42 modules Version 1.0 (Stable) with:

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

You can get the current module set, which is in a transition phase with both 1.0 and NextGen modules with:

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

UPDATE

When you want to update the modules with the upstream version (don’t do this directory in a production environment!) remember that also the submodules have to be updated:

cd /etc/puppet/modules # Or the dir where you have your local git repo

git pull origin master
git submodule init
git submodule update

If you want to force an update on each submodule, even if not tracked on the main repo:

git submodule foreach git pull origin master

The above commands (excluded the first cd and included the last) are done by the script:

Example42-tools/sync.sh

CONTINUOUS TESTING

NextGen modules are tested via Rspec, puppet-lint and puppet doc.

Example42 Jenkins: www.example42.com/jenkins/

Travis (NextGen only set) <img src=“http://travis-ci.org/example42/puppet-modules-nextgen.png”/>

DIFFERENCES BETWEEN OLD AND NEW MODULES

The new modules are compatible only with Puppet versions > 2.6 They are also compliant with the next Puppet version (Etsy), when dynamic variables scoping is going to be be discontinued.

The new modules can be used as the old ones, “set variables and include the class” or can be used as parametrized classes.

The main difference for the first approach is that only top scope variables can be used (so either set them in a ENC or use tools like Hiera to give them the values you need according to custom conditions).

The new modules allow much cleaner and separated customizations so that you hardly need to modify them in order to add custom resources or redefine existing ones.

Decommissioning of classes is now done via top scope variables or arguments of the main class (absent, disable, disableboot) and not including the relevant sub-class.

Monitoring and firewalling abstraction and Puppi integration are still present, while backup abstraction has been discontinued.

The new modules use an alternative approach to Puppi integration.

The Puppi module is going to remain unique and compatible for both the old and the new modules, at least until the migration has been completed.

This transition is going to last some months and will hopefully be completed by the release of Puppet Etsy (somewhen in 2012?)

For any question contact me via GitHub or on www.example42.com

Alessandro Franceschi Lab42

puppet-modules's People

Contributors

alvagante avatar boianmihailov avatar alreece45 avatar elwell avatar orkaa avatar

Stargazers

Martin Henricson avatar

Watchers

Martin Henricson 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.