Hacker News new | ask | show | jobs
by swalberg 4974 days ago
One huge advantage that puppet and chef offer is abstraction from the underlying system. So if you write a configuration that says "Apache should be running, have PHP installed, and have the following 3 virtual hosts installed", then you don't care if you're running on Solaris, Debian, or CentOS. The manifest/recipe takes care of figuring out what the package is called and where the config files go.

I'm not familiar with Ansible, but Fabric seems more like SSH with a for loop. Puppet and Chef are not about automating the typing as much as they are about ensuring consistency. In my Apache example above, if someone goes and changes a vhost file by hand, that file will be replaced with a good one and Apache will be restarted, even if that file was made by a complicated template.

3 comments

    then you don't care if you're running on Solaris, 
    Debian, or CentOS.
That does sound like an advantage, but I generally run the same OS across all machines (for a client), so that's not a huge advantage for me.

    Fabric seems more like SSH with a for loop.
Definitely. And that suffices fairly well for managing 10-20 servers.

    if someone goes and changes a vhost file by hand, that file 
    will be replaced with a good one and Apache will be restarted, 
    even if that file was made by a complicated template.
Ah, so Puppet is running on a machine, it will maintain the configuration of the machine even if some well-intentioned user fiddles?
> Ah, so Puppet is running on a machine, it will maintain the configuration of the machine even if some well-intentioned user fiddles?

Yes, at least for all ressources under its control. So in theory all changes to ressources managed via puppet should be done via puppet. I guess that's better this way when you're running a large farm of machines, the use-case puppet/chef/etc. were created for.

Ansible is definitely model based (and idempotent, like Puppet or Chef), unlike Fabric.

The resource model was reasonably inspired by Puppets, even if other aspects were not.

I look at Fabric as a deployment tool, fine if you like it, but configuration management requires more things on top.

Ansible works in pretty much the same manner.