Puppet is another configuration management system like Juju, Chef or Ansible. Puppet is divided between the free software version, and the "Puppet Enterprise" (PE) version. Furthermore, there are several components to this ecosystem. They include
- MCollective (included with PE)
- MCollective is an orchestration framework. The main point is that it can run thousands of servers.
- a data warehouse for Puppet
- a key/value store
- system profiling library
- IDE for Puppet
- an advanced provisioning application (separate project) that can deploy bare metal or virtual systems.
Puppet Forge (https://forge.puppetlabs.com) is where you can get pre-built modules
The puppetlabs/aws module will let you manage AWS infrastructure with Puppet.
this article (from 2012) on puppetlabs.com describes how to do a MediaWiki install with Puppet. With Puppet you can configure the document root whereas with Juju you'd have to write a custom charm. In quick comparisons, Puppet is more configurable than Juju, and there is the RSpec testing framework to verify your puppet modules.
Another plus for Puppet is that it is able to deploy against
- Eucalyptus (Used to be included in Ubuntu 9.04; bought by Hewlett-Packard in Sept. 2014)
- Google Compute Engine
- VMware Cloud