Configuring and porvisioning servers manually is too much pain for system admins and operations team. not only gruelling, but also this process is prone to human errors as the system engineer can miss a step or misread the documentation provided by other team member. Other way of using scripts is also not a good practice as scripts are usually very brittle and lacks any kind of accountability if they break.
An integrated system of Confguration management is required for the devops teams to automate tasks in a reliable, consistent and sharable format.
This is where tools like terraform, chef or puppet come into play.
Puppet is a server automation and configuration management tool which is used for deploying, configuring, provisioning and managing servers. It gives you a way to ensure certain degree of consistency across your machines and infrasturcture by defining the enviromennet in a simple lanaghuge. It also gives you a great set of analytics to visualize your infra.
Continuous Delivery of software has become table stakes for companies to compete in the marketplace and time it takes to hit the code from development to production affects the timeline.
First and the foremost use case of puppet is that it simply tells you what all the packapges or services are running in your hybrid infra. This snapshot gives you the information which empowers you to take decisions related to your tech stack realiably and quickly.
Puppet can also help you build out custom integrations by orchestrating changes across your software and cd pipeline. Puppet uses a declarative language to define what actions need to be performed on the server. These files in puppet are called Manifests and have three components : type, title and attributes list to be configured.
A more explicit example of manifest would be :
Puppet can be used in two different types of architecture :
Both of these approaches have pros and cons based on security and ease of use. When in doubt use the client-server architecture.
So Puppet is a great server automation tool with great team and a vibrant community behind it and it can be a great choice for your system admin and ops team. You can learn more about it at https://puppet.com/docs