Thu, 10 Jan 2013
Puppet Types and Providers - Short Review
Over the years I've realised that tools I can extend always return the effort taken to learn them many times over. While a number of us have worked through the source code of existing Puppet types and providers and the handful of official wiki pages and unofficial blog posts the release of Puppet Types and Providers means that the rest of you won't have to - this book brings most of the power with far, far less of the pain and uncertainty.
The book itself is a short one. Its contents are focused, well chosen examples and explanations that you'll actually be able to find and read when you need them rather than multiple pages covering every part of API trivia. This book may not cover every nook and cranny but I'd have no problem recommending it to co-workers who want to know the how and why of writing their own types and feeling safe that they'd be able to hit the ground running.
There are a couple of things that I'd liked to have seen covered, such as writing tests for your new types and providers, types with composite namevars and maybe an appendix on how to interrogate your puppet catalog (considering how well the short appendix on the ruby debugger comes across I think the authors would have nailed it) but these are things that can be covered in the second edition - or a larger book that covers all the puppet extension points (hint hint O'Reilly). I do think that this book will be one that stays within reach whenever you're doing Puppet work and will be useful for much more than the initial few readthroughs.
A useful, clearly written, book that saves a lot of source code diving and manually compiling information from many disparate online sources. Currently the best place to learn about how puppet types and providers work and how to create your own. 7/10