20 of 21 people found the following review helpful
on May 20, 2011
Just finished reading Pro Puppet and I'm pretty impressed. If I were to summarize in a few short words I'd say this book could have easily been titled "Pro Deployments" as it really covers a whole host of tools that support Puppet and configuration management in general.
I am fairly new to puppet though I have a strong conceptual understanding of configuration management in general. Although puppet may be thought of as a tool to be used for very large environments, it can also be used to good advantage at smaller sites just for the versioning of your configs, and better testing.
For a quick summary of topics I found well covered here's a bullet point list:
o installing puppet, master & agent
o configuring your firewall appropriately
o managing your certificates for puppet
o applying a basic config as proof of concept
o digging in deeper with Puppet's declarative DSL
o using version control (git) with puppet - a big win for any environment
o brief mention of bootstrapping and provisioning - kickstart & preseed
o modules, classes, functions and templates
o building and managing your basic dev, test and production environments
o using a pre-commit hook with your version control system
o scaling puppet with apache & passenger
o adding a load balancer and clustering
o horizontal scaling puppet ca & masters
o external node classifications - allowing a more scalable solution for manifests & configs
o using LDAP for node information
Hitting chapter six really starts digging into some meaty topics including:
o virtualizing your configurations - applying conditionally or "realizing" to certain nodes
o enable queueing for more scalable puppet requests
o in-depth examples to manage ssh keys, nagios configs & load balancers with dynamic node configuration - awesome!
o using sqlite or mysql to store your puppet configs
o using web consoles such as dashboard and foreman
o creating puppet modules (like RPM packages)
o installing existing puppet modules (packages) from the puppet forge
o alternate DSL for puppet with Ruby DSL
o testing your configs without alternate test network - cucumber
o command line & dashboard reporting
o extending the facter database with custom environment variables
After all this material you might be stuck on the idea that Puppet does not operate in real-time. By default it is configured to refresh configs and services on your servers every thirty minutes. Of course you can do so manually, or adjust this parameter, but you may require real-time usage.
Enter Marionette Collective, an imaginative name for an add-on which extends Puppet to provide this more robust functionality.
Pro Puppet certainly introduces a wide range of real-world use-cases to the reader, which make the book very valuable. Using with version control, to manage dev, test and production, and scaling to handle large number of hosts are all key topics. What's more the method of automatically configuring nodes in your load balancer, nagios, or cacti reporting, is just a really great use of this technology.
What I found surprisingly missing though was any mention of using Puppet for provisioning or more specifically cloud deployments. This is I think a topic that everyone is talking about and one that few books are covering. An opportunity perhaps! Along with that, I would have liked to see a comprehensive discussion of different configuration management systems, such as cfengine, and chef, and why Puppet is the best and/or what the pros and cons of each are.
Despite those reservations, the book was excellent. If you've already decided to use puppet in your environment this is a very good volume to get you up to speed!
11 of 11 people found the following review helpful
on July 13, 2011
This is a great overview of Puppet software and the associated administration tools. I finished reading it on a flight from Orlando to Los Angeles, but the number of spelling mistakes and other editing errors I encountered irked me so much that I stopped marking them down. The editor should seriously have someone review the content again.
Other than the editing issues, I would give the book content four stars for touching on most of the features of puppet and how to integrate with other related software packages, such as mcollective. The author does point out many areas where puppet can be frustrating, but he recommends numerous methods to workaround such issues. The author goes on to talk about upcoming features in puppet 2.7 and beyond, so the content is forward-looking, even in the fast-paced community of puppet development.
I would recommend this book to those looking to gain mastery of puppet >= version 2.6.
10 of 10 people found the following review helpful
on December 21, 2011
I have really enjoyed the book so far, it has definitely made learning puppet a much nicer experience.
I would have given it 5 stars except that this book and the source code that goes with it, is replete with typos and poor grammatical structure.
There are several sections in the book that seem quite disjointed, like the author knew where he was going in his head but spaced out a paragraph here or there.
The scary part is that I am only to chapter 2.
Most of the code examples do not run as is and need editing.
IMHO, this is a beta version book, and was rushed out with great content but very little editing or review.
6 of 6 people found the following review helpful
on May 29, 2011
This book is an excellent Puppet book for beginners and professionals alike.
I manage a software team and have read this book cover-to-cover in order to study Puppet for our team's use on a daily basis.
Despite step-by-step instructions for the initial installation, I needed some tinkering since different OSs have slightly different distributions, but once I had a server and agent running on two different VMs (Ubuntu) - there was an "Aha!" moment when the agent had emacs automatically installed on it! Getting past the initial installation phase allowed me to really enjoy the rest of the book as well as enjoy Puppet itself.
Puppet is not trivial, but the book covers its concepts very clearly and one "gets" it quite early on (especially if you get your hands dirty and follow along the examples).
The book then expertly guides the reader to its "pro" section detailing use of Puppet with configuration management tools such as git and db-based storage.
It then goes on to detail how to use AMQ with Puppet for scaling. I doubt I will use such a robust configuration, but was thrilled to see how flexible and extensible Puppet is by use of load-balancers and integration with Apache/Passenger.
Overall, the book is well written, and I would highly recommend it as a *text book* for Puppet. This is a readable text book on the subject - not a reference manual, although it has countless links to the reference manuals.
I always wanted to learn Puppet, and this book certainly is the one to read if you're dealing with configuration management whether as a developer or a DevOps person.
5 of 6 people found the following review helpful
on June 1, 2012
I had hoped for a more comprehensive coverage of puppet. The book is written well, and covers puppet topics across a broad spectrum of topics that will be of interest to very large puppet deployments. However, if you are managing less than 500 hosts, then almost half the book will not be relevant to you.
The coverage of puppet types and other details is lacking: the list of those covered is miniscule compared to those that weren't. For example, among the types that were not covered are: augeas, schedule, router, resources, tidy, vlan, zfs, zone, zpool ...
There is also no coverage of virtual resources, parameterized classes, custom mount points, and other topics. Metaparameters are only briefly discussed, and a URL given for a complete list - the complete list of metaparameters should have been discussed in the book. An entire book could have been made which would cover puppet in all its complexity; instead, this book covers a broad amount of topics while covering only puppet basics.
Managing puppet with puppet is covered, while not discussing using puppet to bootstrap itself. Using puppet for system installs is not covered. In particular, it is never discussed why puppet needs to make sure it is installed when it is in fact running at the time.
There is no preface, which might have answered some of the implied questions in this review: Who is this book written for? Why are these topics covered? Why is puppet not covered completely?
There is a glaring mistake in the index (which suggests that the index was manually created): "running Dashboard" comes after "Red Hat" and before "regular expressions". In this day and age, indexes should be automatically generated in alphabetical order from the text.
3 of 3 people found the following review helpful
on July 27, 2012
I've been through the official puppet training and I still learn from this book. It is the best single source introduction to some difficult concepts. I would have paid a fortune for it last year when I wrote most of my puppet code. Now I have to go back and refactor my code to fix all the design flaws this book has revealed.
Do yourself a favor and start here, you can just read the first 2-3 chapters to get a decent grasp of the correct way to proceed. Don't just muddle through with the online docs and no real idea of how to structure your code and modules like I did.
Only deficiency that I see is that the high availability docs do not fully support Puppet Enterprise but that probably reflects the state of the product when the book was written. Still a worthwhile book if you are using Puppet Enterprise like we are.
1 of 1 people found the following review helpful
on September 3, 2013
This book was frustrating to read.
The high frequency of errors (in both the prose and the code, but mostly the code) makes it hard to focus on the content.
There's far too much unnecessary detail and repetition.
Simple code samples are followed by line-by-line explanations of what they're doing. This is sometimes useful, such as when introducing a DSL or a new bit of syntax, but much of the time, it's excessive. One time, there was a whole 2-sentence paragraph to state that a variable was being assigned!
Every time a tool or plugin is introduced that requires new packages, there are detailed instructions about how to install said packages, including commands to use with various package managers (yum, aptitude, etc) and on various types of systems. This includes generic dependencies that aren't specific to puppet, such as mysql, ruby, erlang, and rabbitmq. I don't think it's helpful to include that information here. These dependencies all have their own documentation with installation instructions. The average reader has probably installed many of these before. "Install mysql and start the server" is an instruction that most system administrators presumably already know, or can figure out, how to follow. Even if a reader hasn't heard of package managers, they'll have caught on after the first example or two; there's no need to cover it every time. (Also, shouldn't we be installing many of these using puppet?)
I'm giving two stars instead of one (and I bothered to read the whole book) because the content, presentation notwithstanding, is useful. I'd been using Puppet for around 6 months before reading this, and there were plenty of ideas that I found helpful and plan to use. The examples were well selected (though poorly executed, as described above): significant new concepts often had two or three examples that progressed from trivial to realistically complex.
Some of the content is outdated (such as coverage of the ruby DSL for writing manifests, which unfortunately is no longer supported). If you read this book, be sure to pair it with the online documentation.
The Kindle format was ok, not great. The formatting was pretty readable (aside from awkward line breaks in the code unless my text was tiny, but I don't think that can really be helped). I glanced at a paper copy once and saw that this book really doesn't have sidebars, so it doesn't suffer from confusing formatting caused by attempting to inline those with the text (as some technical books do). I did find one code error specific to the Kindle version -- the cucumber feature code is missing any interpolated variables (ie, "<hostname>.example.com.yaml" came out as simply ".example.com.yaml").
1 of 1 people found the following review helpful
on July 16, 2011
I just finished reading James Turnbull's excellent Pro Puppet. I am new to Puppet and while an elegant solution it does cover a broad landscape. I found the information extremely helpful in developing my deployment plans for Puppet in my organization. The book provides in depth discussions covering the major decisions you'll face in deploying Puppet. I also found that it bridged the written world with the Internet by providing links to sites and communities where you can get your specific questions answered. That's not to suggest that it was short on examples and tutorials as it covered every step of the way in achieving your initial deployment.
This book is especially useful for new Puppet users who are looking to deploy Puppet for the first time but would also be useful for anyone who inherited an implementation or are looking to overhaul their implementation.
2 of 3 people found the following review helpful
on February 18, 2013
James Turnbull has a deep mastery of the subject matter, and it shows throughout. However, with a product of this complexity like Puppet, the demands upon the editors and technical reviewers are quite high. And in this case, they have let the reader down. I've had this book for awhile now and yet I have not seen any updates get pushed to my Kindle yet, so I suspect it's been orphaned by the publisher.
The knowledge and wisdom contained herein is very good indeed. I got thrown head first into Puppet with only cfengine v2 experience behind me. I used this book and Puppetlabs' (much better quality) online reference as my guides. The reference can only take you so far, but this book pulls it all together into implementation guidelines.
If the editing had been up to par with the writing, I would have gone five stars. The editing tempts a three star rating. But I've gotten a lot more than three stars worth of value out of this volume, so we'll meet in the middle at four.
on November 4, 2013
Trying to get up to speed on Puppet for a new project to which I've been assigned. Found a copy of the book and am having a truly difficult time reading through it. Notes, tips, and comments are littered throughout body of the document effectively breaking the flow of the text in some cases many times per page. It's the reading equivalent of being caught in a stop-and-go traffic jam.
I appreciate tips and clarifying notes, but when you need to inject this many into the text, perhaps the text itself needs to be re-organized or re-written.