Before we take a look at understanding what goes on behind Puppet we will use this time to introduce you to configuration management with Puppet Open Source and Puppet Enterprise and answer the big question on ” what is puppet ” and help is towards understanding puppet.
Puppet is available from puppetlabs.com and has been since 2005. They provide configuration management across Unix, Linux and even Windows systems in both Open Source and Enterprise versions. We are predominately working with the open source version throughout this demonstrations.
Other configuration management systems do exists and these include Chef and Ansible among others.
Configuration management is important as it provides conformity, reliability and predictability to your deployments. This may be across many servers in an enterprise or between production and test environments. Either way Puppet is a requirement.
Puppet look at what is required for the desired state and does not concern itself with how it should be done. For example we can require that vim is install but we do not need to worry if that should be done by apt on Ubuntu systems or yum on CentOS hosts. As the Puppet administrator we just write the requirement that we want the package installed and the Puppet agents will manage the rest.
In the same way we can require that a service is running but we are no concerned as to how it is started, this is down to the agent system which will use systemd, upstart or SysVInit as is required.
If you want to be understanding puppet a little better then the video is a great place to start by showing how we can install the vim text editor with customizations, add a password for the root account and install, start and configure SSH.