para administrar las configuraciones de sistemas Puppet lleva a cabo tareas de manera centralizada, es decir, despliega la misma configuración y el mismo software en diferentes máquinas.
http://www.javiergarzas.com/2014/05/puppet-en-menos-de-10-min.html
fedora https://germanrs.fedorapeople.org/docs/Puppet/
las configuraciones de las máquinas se pueden establecer a través de código, escribiéndolas en un lenguaje propio de Puppet.
Este lenguaje además, te permite abstraerte de las configuraciones del sistema, que están a más bajo nivel.
Con él puedes describir los recursos que una máquina debería tener (usuarios, grupos, paquetes, archivos, programas…etc.), en qué estado deberían estar y las relaciones que existen entre ellos y Puppet se encargará del resto.
Por ejemplo, no tienes que indicar a Puppet que necesitas que en esa máquina esté Maven, y por ser una máquina Linux el comando para instalar Maven es X. Solo tienes indicar que necesitas que Maven esté instalado, y Puppet mirará bajo qué sistema operativo está ejecutándose y actuará en consecuencia.
Aquí tienes un ejemplo en el que indicamos a Puppet que queremos tener instalada la versión 3.0.4-2 del paquete de Maven:
node 'demo'{ package{'maven' ensure=>'3.0.4-2' } }