/vagrant-puppetmaster

Vagrant config for a testing setup with a Puppet Master, Puppet Dashboard and PuppetDB

Primary LanguageRubyApache License 2.0Apache-2.0

vagrant-puppetmaster

This is a Vagrantfile for running a testing setup for Puppet. It includes a Puppet Master, Puppet Dashboard and PuppetDB. No idea what Vagrant is?

  • Install VirtualBox
  • Install Vagrant
  • cd to the cloned directory
  • Type in vagrant up to your terminal window
  • Profit

If you get errors about PuppetDB not starting, issue a vagrant provision.

Expanded by Mikael Sennerholm to include multiple puppet environments, and 3 VMs, one in each environment.

If you get errors about puppet SSL certificates on the puppet client VMs, issue a vagrant provision {dev,test,prod}1.

##Why?

I wanted a full Puppet test environment that I could create and destroy easily. Vagrant gives me that.

##The headlines

IP Address192.168.33.10
Dashboard URLhttp://192.168.33.10:3000
Put your manifests in:puppet/manifests
Put your modules in:puppet/modules
If you are using Hiera edit:puppet/hiera.yaml
Put your Hiera data in:puppet/hieradata

##A bit more detail on what’s going on ###Puppet

This will set up the latest version of Puppet running as a master using the built in webbrick server. This is fine for testing, but this (amongst other reasons outlined below) makes it unsuitable for use in production.

Place your manifests and modules in puppet/manifests and puppet/modules respectively.

The server has the IP address 192.168.33.10 - if your LAN runs on this subnet, make sure you change it in the Vagrantfile.

Other tweaks have been made to the configuration to make it more suitable for testing than the standard configuration:

  • Autosigning is enabled for any host
  • Any client can revoke a certificate (useful when re-deploying a client for example)

These should be locked down to trusted hosts if using these techniques in production.

###Puppet Dashboard

The Dashboard can be accessed at http://192.168.33.10:3000. This also runs using webbrick, which makes it unsuitable for a large scale deployment.

###PuppetDB

PuppetDB is configured and provides the inventory service in the Dashboard.