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.
Verified User
Consultant in Information Technology (11-50 employees)
Puppet Enterprise is being used to deploy and manage patching of Linux servers, primarily CentOS, across a wide array of customer systems from web servers to app and database servers we are able to patch in a consistent and reliable manner with proper notifications for our monitoring system and on-call resources.
Pros
certificate management for new device trusts
viewing all systems currently under puppet control
view logs from all systems to detect errors and missed runs
clean interface to navigate through system
Cons
web UI could use quite a bit more functionality to differentiate it from the free version
multi-tenancy would be a big benefit in our use case
view and edit puppet code within console ui
Likelihood to Recommend
[It's] best suited for those that need a user interface to visualize their environment.
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
The company is really engineering driven, so Puppet is being used across the entire organization in order to maintain the configuration and also as a deployment tool when it comes time to GM a new version of one of our applications. Before the use of puppet in this organization there was a longer, more drawn out deployment process which required manually interacting with every host being updated.
Pros
Maintain configurations
Create a more organized look at what it takes to run a particular application
Automate deployments
Cons
Coming from Chef, I was much more used to everything being executed from the top down, Puppet executes actions at random and so if you need something like a directory to be created before a file is placed you will need to explicitly declare the order of execution.
Coming from Chef I also learned to love the knife command, this allows you a few things, but a very valuable action allowed by the knife command is the ability to list nodes that are currently running Chef.
The ability to use commands across multiple host in parallel(once again, a knife command).
Likelihood to Recommend
Puppet is good enough to get the job done, you can use it to automate deployments and maintain files and configurations, if this is all you're looking for it's great.
If you're looking for more control over your systems as a whole without having to write your own scripts or install multiple configuration management systems then Puppet is not what you're looking for.
Let me start by saying like any configuration management software, there is a learning curve and there must exist a respect for what it can do across hundreds or thousands of servers with a single Puppet run, or what it can break with that same ease of use! That being said puppet, working in unison with The Foreman, Mcollective and Hiera, are some of the most powerful, and for me personally, the most enjoyable and rewarding set of admin tools I've used in years.
At my current company we needed to automate deployments and configuration consistency across multiple data centers both Colo and Cloud internationally while remaining flexible enough to change parameters, environment settings and application code in a timely and controllable manner.
We needed a full server life cycle management system that automated provisioning, configuration, changes and clean removal of dynamic resources such as on demand server capacity.
Pros
Create a specific role based server from a vanilla provisioning template and maintain configuration state via Puppet automated catalog runs.
Add new functionality, services or configuration data to all servers or a subset of servers without ever needing to log into them.
Integrates seamlessly into other server life cycle technologies such as The Foreman and Mcollective for even greater management and automation.
Cons
Steep learning curve for first time users.
The complexity can get a little overwhelming in a more collaborative deployment methodology across multiple platforms and data centers.
Some external changes to Puppet like the new Puppet 4 architecture can cause considerable time consuming migration efforts especially if you have a lot of legacy classes and configuration that do not conform readily to the new design.
Likelihood to Recommend
Our company deploys across multiple data centers and cloud providers with a need for consistency, scalability and repeatable results. Puppet allows us to achieve this in a way that would be very tedious and time consuming and with very little confidence that the end result would be a "known good" state if we did not utilize the power of Puppet.
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.
We are using Puppet Data Center Automation to establish the communication between our master server (database) and the other computers that are being used by the employees in order for them to have access to the most up-to-date files in our server. With the software we ensure that the database is running properly and easy to access.
Pros
It's compatible with all the operating systems that the employees use at our organization.
Easy to install and initial setup is easy.
It provides good tools for testing if everything is running properly and in order.
Cons
If you want to do advanced tasks with it, you need to be familiar with Ruby, which not everyone has knowledge about it.
It doesn't have its own dashboard.
The support for the tool is not very high due to being an open source software.
Likelihood to Recommend
Although we run it in a small server infrastructure, while using it we can estimate that it's use would be more suited for a larger scale of server infrastructure.
Verified User
Employee in Information Technology (1-10 employees)
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.
Verified User
Employee in Information Technology (51-200 employees)