The most robust, battle tested, and affordable automation software available!
May 06, 2016

The most robust, battle tested, and affordable automation software available!

Colby Shores | TrustRadius Reviewer
Score 9 out of 10
Vetted Review
Verified User

Overall Satisfaction with Puppet Data Center Automation

I use it to roll out configuration changes with variables stored in Hiera for all parts of our infrastructure(From LDAP to Apache Vhost configurations). It addresses the need to keep all systems uniformly identical with a clear map of each system as well as a simple way to update each machine as well as ease in automating their deployment.
  • Provides a clear map of how a system is configured
  • Eases the creation of a system in a specific cluster as it is scripted in code
  • Simplifies configuration changes to a cluster or to every system such as rolling out vhost configurations, updating ldap roles, NFS mounts, etc
  • The syntax is very easy to read and carries a lot of fluidity once the language is learned.
  • It is occasionally squirrelly such as if I want a tarball to decompress once, I have to do run a exec command and onlyif => 'test ! -d /directory_name'.
  • I cant for the life of me figure out how to execute it based on environment(production, development, staging) so I am still using puppet 3.7 that utilizes manifest nodes. I would like to utilize puppet 4 because it supports Lambdas and a very Ruby-like syntax for iterations but it requires the use of environments which we do not need. It would be nice to allow for both methods(manifest nodes AND environments) like 3.7 supported.
  • It would be nice if the language still supported inline ruby. The new generation language is great for basic tasks but being able to do things like pulling data from a MariaDB database and utilizing that data in a manifest is very nice when operating at scale. We personally do not need it but I can see that being something very useful for those who code their own front ends for larger organizations.
  • We utilize Puppet Community Edition and coded in some enterprise features our self so we certainly haven't lost any money at all by utilizing it and the time saved in provisioning has been invaluable.
We have used SaltStack by proxy of utilizing Ceph since it uses SaltStack to automate configuration changes to it's cluster. I found it easy to use however extremely limiting when it comes to scale as its not a proper language with a central data store like Hiera. We plan to explore it again for a smaller project, however it isn't on the horizon to unseat Puppet for our primary infrastructure.
We have used Docker as well and quite frankly, it is not ready for prime time in terms of its networking. It seems great for system consolidation and exposed ports from its NAT can be run through reverse proxy to the internet. We have decided to wait until they are able to include proper static ip assignment. Finally, Docker like SaltStack, is great for smaller static configurations but not an ever changing infrastructure that relies on variables. Hiera is the main difference here.

Most of the major issues that people had with the language have been addressed in Puppet 4 which primarily pertain to the limitations of the language and its ability to scale. It would be nice to allow for full ruby support as an unsupported option though so developers are able to reference their own data sources dynamically.