Puppet

From wikinotes


Puppet is an entirely cross-platform system-configuration synchronization tool. It can be used for both config files, and to install programs. Tools to download/install software are abstracted, so the same recipe can be used on BSD,Linux,OSX, and Windows. Very sexy.

Puppet is comprised of 2 components:

  • puppet agent is installed on every server managed by puppet. It receives updates.
  • puppet master is the server component. It pushes updates to the agents.


Install

Linux

FreeBSD

/usr/local/etc/puppet/puppet.conf
main puppet config
/var/puppet/ssl
puppet SSL certificates

Base Install

sudo pkg install puppet4

#### /etc/rc.conf
puppet_enable="YES"
puppetmaster_enable="YES"
####

puppet help | tail -n 1			## Check puppet's release version (keep consistent across all platforms)
sudo pkg lock puppet4			## ignore future updates to puppet



Config

SSL certs

Make sure to configure and install NTP. We're using SSL certs, and if the time is incorrect, certificates will be rejected.

sudo puppet master --verbose --no-daemonize		## Create SSL certs
sudo puppet cert list -all								## Confirm SSL cert creation


Configuration

Puppet Consists of 2 programs( master, agent), a central config file(for master and agent) , and manifests( recipes )

sudo touch /usr/local/etc/puppet/manifests/site.pp			## create a manifest
sudo puppet master													## start puppetmaster daemon

#### /usr/local/etc/puppet/puppet.conf
[agent]
server = 127.0.0.1
####

sudo service puppet start