Hi all,
with some hardly hidden pride and excitement I'd like to announce the first 
release of Tiny Puppet <https://github.com/example42/puppet-tp> ("Yet 
Another Puppet Abstraction Layer"), a Puppet module that allows easy, quick 
and coherent management of virtually any application.

You can read something more about it in this blog post: Introducing Tiny 
Puppet <http://bit.ly/1HjQGeX> 

Briefly, a common basic usage pattern, in local site modules and profiles, 
is as easy as:

tp::install { 'nginx': }

tp::conf { 'nginx':
  template     => 'site/nginx/nginx.conf.erb',
  options_hash => hiera('nginx::options_hash'),
}


and this can be done with ANY application on ANY Operating System (or, to 
be more precise, to any currently supported application 
<https://github.com/example42/puppet-tp/tree/master/data>) as long as it 
can be installed via the native OS packaging system.

The module provides several other defines which, based on the application 
data, allow quite interesting things, such as an incredibly quick, easy and 
effortless way to run acceptance tests (or monitoring checks).

For example to run acceptance tests on Centos7 for all the supported 
application is enough to execute:

bin/test.sh all Centos7 acceptance

this uses the local Vagrant environment to install, test and uninstall 
applications (read the docs for the prerequisite commands to issue to setup 
your local environment).

Check here for the current compatibility matrix 
<https://github.com/example42/puppet-tp/tree/master/acceptance/Centos7> of 
different applications on different OS, most of the failures are due to 
incorrect application data, missing extra repositories (they can be managed 
directly in the data files), missing default configuration files and other 
easily fixable issues.

Other defines are available, or planned, for different purposes, they are 
all based on the applications data which may be easily added and extended 
to support new OSes:


   - tp::install. It installs an application and starts its service, by 
   default
   - tp::conf. It allows to manage configuration files
   - tp::dir. Manages the content of directories
   - tp::stdmod. Manages the installation of an application using StdMod 
   compliant parameters
   - tp::line. (TODO) Manages single lines in a configuration file
   - tp::repo. (WIP) Manages extra repositories for the supported 
   applications
   - tp::concat. (WIP) Manages file fragments of a configuration file
   - tp::instance. (TODO) Manages an application instance
   - tp::puppi. Puppi integration (Don't worry, fully optional)
   - tp::test. Allows quick and easy (acceptance) testing of an application

Tiny Puppet currently requires Ruby > 1.9.x (on the PuppetMaster) and 
PuppetLabs' stdlib.

It can be plugged without conflicts in any local modules set and can 
replace or integrate other existing modules: it's all based on defines, you 
can decide which ones to use for which applications.

Its expected user is the system administrator who knows exactly how to 
configure his/her applications and needs a standard and quick interface to 
manage them without the effort to import and study (or even worse, write 
from scratch) a new module.

I'm looking forward to hear any feedback about it: without false modesties 
I consider it the result and the essence of years of development and 
research on modules' reusability and abstraction patterns, but as long as I 
don't hear others' opinions about it I'll remain with the doubt if it's 
going to appeal only me :-)

Best,
Alessandro Franceschi


-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/2455a0cf-96a7-4cd6-8abd-071751f69ebc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to