puppet types and providers


After becoming very inspired following Martin Alfke's "Moving From Exec to Types and Providers" talk at Puppet camp London, I feel the need to share the love that is Types and Providers.

What are types and providers?

These are the building blocks of Puppet, written in Ruby that give us the Resource types in our classes, such as File or User.

If you don't mind 'fun' language, then Gary's post Fun with Providers here will help explain things better than I can here.

Why now?

I'm currently working on a scalable and resilient Mongodb replication cluster and have this long bash script triggered by an Exec. This is bad, not only because exec statements are a sign that technical debt is building, but the audit entries from Puppet are sparse.

My team will be working on getting up to speed with types and providers to create a much better Mongodb puppet module experience.

All going well, this code may find its way into the puppetlabs mongodb module.