TrustRadius Insights for Puppet Enterprise are summaries of user sentiment data from TrustRadius reviews and, when necessary, third party data sources.
Pros
Reliable mechanism for deploying infrastructure-as-code: Users have found Puppet to be a dependable solution for deploying infrastructure-as-code, particularly when integrated with source control platforms like Git. Several reviewers have mentioned that it ensures system stability and uptime by effectively managing configuration drift.
Valuable asset for transitioning to DevOps: Puppet is highly regarded as a valuable tool for teams embracing DevOps practices. It empowers development teams to take ownership of their assets and automates repetitive tasks. This streamlines system management and simplifies complex operations.
Seamless integration with other community projects: Many users appreciate Puppet's seamless integration capabilities with various community/open-source projects such as Cobbler and Foreman. This integration enhances its ability to automate software installations and configure software post-installation effectively.
We host and manage 'a lot' of servers. Many years back without automation we used to run scripts to spin up servers and before that, we used to spend hours doing everything manually on bare metal servers. Once automation came in we initially started playing with Ansible to test the waters but what really grabbed our attention was the pull ability of the Puppet compared to the push ability of ansible that really got us into a Puppet. For example, when we were still new we had to push configs to each server, and if there is a change on the box we have to push it manually again to all the boxes. So this was not really scalable for us. That's where we started using Puppets. With puppets agents, all we had to do was maintain a code repo and Puppet will pull the configs from the repo. That was the one feature that we were looking for at that time.
Pros
Puppet manages all our server's "state" so if there is an unauthorized change on the server then in a set interval puppet will run and reset the "state" of the server back to a good working condition. this helps us avoid unauthorized change and also maintains a healthy server.
Puppet helps us keep a centralized repo of all the configs that we need to push to the endpoints. Spinning up new servers in AWS/VMWARE/AZURE is a breeze with Puppet.
Puppet servers check into our central repo for changes on the code and if it finds any change it will immediately apply the change to the servers. So as admins we don't need to log in to any of the servers manually to make any changes.
Cons
The setup of Puppet is a nightmare compared to ansible. Anyone watching a youtube video can easily set up ansible with minimal IT knowledge. All one needs is the source IP addresses and we are good to go. Setting up Puppet is a more hands-on task and pushing the puppet agents to all the boxes is another issue. If the installation and setup were simplified like ansible that would attract a lot of people to this platform
The syntax of the code for Puppet is not as easy as ansible. Ansible simply follows a YAML format and it's like typing in normal English. Even complicated tasks can be written by just understanding YAML syntax. Perhaps Puppet needs to revisit the lanugage used and try to come up with a much simpler lanugage for writing code. This will make day-to-day usage easier.
Likelihood to Recommend
Puppet is the go-to tool if you are working in a static environment where changes are minimal. For instance, if you want to spin up 100 serves and then you just need to maintain it then puppet is the best tool for you. The reason I say that is because Puppet has a complicated syntax language (Ruby) you need to learn. So once a puppet code is written you can simply install the agents and make the agents talk to the master to check for changes. So maintaining an environment is easier. But if your environment is dynamic i.e it keeps changing every other day and you need to write a new config to spin up new devices, then ansible is the tool for you because writing a playbook on ansible is very easy.
VU
Verified User
Consultant in Information Technology (Computer & Network Security company, 11-50 employees)
Puppet Data Center Automation is being used throughout our organization to quickly and reliably deploy and maintain various systems. We currently pull our manifests from Git via Puppet to stand-up brand new (virtual) servers and configurations without worrying about configuration drift on each independent snowflake. Using Puppet allows us to automate and streamline multiple aspects of our day-to-day operations and works well within our release process to provide us with solid infrastructure-as-code solution.
Pros
Provides a reliable mechanism for deploying infrastructure-as-code, especially when integrated with source control (such as Git).
Manages system configuration drift to provide greater stability and system up-time; the same configuration-as-code can be pushed out over and over.
A strong asset when moving teams towards DevOps by providing development a way to take control of their own assets.
Cons
A bit of a steep learning curve but something that can be easily understood once a few basics are grasped and use of Puppet is put into practice.
Does not fit well with existing infrastructure but that is not necessarily a failing with Puppet but can require a radical shift in thinking and procedures to reliably implement.
Likelihood to Recommend
Well-suited for:
Deploying infrastructure-as-code from a central version-control repository
Providing a reliable mechanism for quickly building out new datacenters or recovering from a major disaster-type event
Standardizing middleware, code, and configurations running systems and applications
Automatically pushing configurations out to multiple clients from a central repository
Not well-suited for:
Managing existing infrastructure and/or forcing a standard configuration onto already-deployed and running infrastructure
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.
Pros
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.
Cons
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.
Likelihood to Recommend
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.
Our organization uses Puppet Data Center Automation in our integration and test environments as well as in operations. The systems integration team uses Puppet to automate redundant tasks as well as simplify deployment of complex system configurations to benefit system maintainers and installers that are not trained in the intricacies of the platforms and tools being implemented.
Pros
Automation of redundant tasks
Abstraction of complex tasks
Integrates well with other community/open-source projects (e.g. Cobbler, Foreman)
Cons
System user interfaces (e.g. Puppet Dashboard)
Integrated support for password management
Backend Ruby scripts are very embedded and cumbersome to find/edit in cases where manual bug workarounds are necessary to implement
Likelihood to Recommend
Puppet Data Center Automation is well suited where the system configuration is to remain as static as possible (minimal changes to operating system and environment) and across more than 3-5 nodes. The amount of overhead to stand-up a robust Puppet solution is not worth it if managing less than 3-5 systems. It is not well suited for development environments where developers and engineers are constantly changing the baseline, and subsequent Puppet runs will modify targeted files back to their original configuration.
We used Puppet to automate installs and configure out environment after the initial OS install. It is only used by our engineering area. The problem it addresses is defeating manual repetitive tasks.
Pros
Automating software install.
Configuring software after post install.
Taking the same Puppet code to another environment and have it easily deploy there.
Cons
Decrease the learning curve.
Introduce ways easy ways to write Puppet code to those who have not done it.
Introduce a UI for those who are fearful of command line.
Likelihood to Recommend
Puppet would be more suited for a linux environment and those who want to save time.
Puppet is a great tool. Puppet used in conjunction with other open sourced tools makes VM automation work like magic. It is currently in development, but will hopefully make it out to be used throughout the organization.
There are few business problems, mainly with the limitation in support for open sourced software, which would be solved by using the closed sourced counterpart, but that would defeat the purpose of open source...
If people helping people is a powerful thing... then Puppet helping Puppet is also a very powerful thing.
Pros
Plays well with other open sourced software
A generally accepted open sourced tool for automation
Easy to understand
It is most importantly free
Cons
Support... support.... support
Does not always work well with other software
Likelihood to Recommend
Currently Puppet can be suited to be used in any application that is redundant. The coding is easy to understand and can be as complex as you make it.
VU
Verified User
Employee in Information Technology (Information Technology and Services company, 51-200 employees)
We use Puppet Data Center Automation as a configuration management tool in our organization. It allows us to maintain a constant baseline as well as make easy updates across many servers.
Pros
Maintain a solid baseline across many servers.
Apply updates to many servers.
Easy to make changes all in one place rather than on 50 servers.
Cons
No GUI for non sys-admin users.
Ruby syntax is troubling at times.
No automated deployment.
Likelihood to Recommend
Puppet Data Center Automation is more suited for many servers. It is less appropriate for a one server architecture.
VU
Verified User
Engineer in Information Technology (Information Technology and Services company, 11-50 employees)
We use Puppet Data Center Automation to standardize our server deployments. This allows us to maintain a uniform configuration across application servers ensuring specific production level standards are met and kept in sync. We are able to be sure accounts are provisioned and deprovisioned in a timely manner as well as centrally control application configuration updates/changes.
Pros
It allows for uniform configuration.
It allows you to deploy software effectively without having to learn specific nuances of it.
It allows you to be OS agnostic in that it can translate commands between OS distributions.
Cons
The OpenSource branch of the product does not come with a reasonable dashboard. A third party one must be used.
Puppet by itself, while good, needs additions made to it to become great, such as Heira, r10k, GIT, etc...
Puppet has a learning curve. It is best to start with something small, such as NTP and work your way up from there. Do not start with something like Apache.
Deploying MCollective really helps to round out the Puppet experience.
Likelihood to Recommend
If you are primarily a Windows shop, Puppet Data Center Automation is less suited to your environment. While it works, and there are modules for Windows, the community is less developed than the Linux/Unix community. If you already have a background in Puppet on Linux or a supportive management, Puppet on Windows could use help in the community. The more who start using it, the better it will get.
VU
Verified User
Team Lead in Information Technology (Information Technology and Services company, 201-500 employees)