A while back I compared Chef, Puppet and Ansible - and declared my new favourite configuration management tool. I'm currently working on a project for a new client, automating their platform build and introducing configuration management. So I prepared this small video for them.
The point of this is not to show how to set up Puppet or Ansible, but merely to show some fundamental differences. The demo was created in Vagrant, as three virtual machines. The two web servers have port 80 forwarded back up to the host system as ports 8999 (Puppet client) and 8888 (Ansible client).
Before viewing you should be aware I did some preparation before getting going - useful Yum repos already subscribed to, a couple of config files for Puppet already written (for Hiera data) and pre-written manifests and plays for the tools themselves.
Plus, before actually timing, I'd run through it a couple of times - which means the setup of both is actually pretty smooth and fast. Somebody new coming to the tools would find it very hard to achieve these install times I think. Or, at least, they would with one of the tools.
Yes, I could've done this a multitude of different ways, but I wanted, quite
purposefully, to show 'centralisation', this is why there's a puppetmaster. I
puppet agent from the VM itself, which kind of defeats that.