Puppet makes it easy to automate the provisioning configuration and ongoing

management of your machines and the software running on them. Make rapid, repeatable changes and automatically enforce the consistency of systems and devices – across physical and virtual machines, on premises or in the cloud.
• Reduce cycle times to get more software deployed
• Make fast, iterative changes
• Define a configuration once, and apply it to thousands of machines
• Automatically remediate configuration drift
• Get detailed insight into hardware and software configurations

Puppet usually follows client-server architecture. The client is known as agent and the server is known as master. It can also be used as a stand-alone application.
Puppet Master is installed on one or more servers and the systems that need to be configured install Puppet Agent. Puppet Agents communicate with the server and fetch configuration instructions. The Agent then applies the configuration on the system and sends the status report to the server. Devices can run Puppet Agent as a daemon, that can be triggered periodically as a cron job or can be run manually whenever needed.

Puppet Master: puppetmaster
Puppet Client: puppetclient

vi /etc/hosts puppetmaster puppetclient

Disable firewall
Need internet access
Install puppet lab repository on Server

Puppet Master:

yum –y update
yum –y install http://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm
ls –lrt /etc/yum.repos.d
yum –y install puppet-server
vi /etc/puppet/puppet.conf
sudo –u puppet puppet master –no-daemonize –verbose
systemctl start puppetmaster
systemctl enable puppetmaster

Puppet Client:

Install puppet lab repository on client
yum –y install http://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm
yum –y install puppet
vi /etc/puppet/puppet.conf
server = puppetmanster
ping puppetmaster
puppet agent –t

Puppet Master:

puppet cert list
puppet cert sign puppetclient

Puppet Client:

systemctl start puppet
systemctl enable puppet
puppet agent –fingerprint