A sysadmin's guide to Ansible: How to simplify tasks
opensource.com
opensource.com
I would have assumed, given my background of manually performing these tasks, that I would immediately be attracted to Ansible over CFEngine. As it turns out, not at all. Now that I have played around with CFEngine, I keep bumping into issues where it feels like Ansible is in my way, or forces me to do things the complicated way.
I know a lot of people disliked the earlier versions of CFEngine, and I do realise the documentation is kind of so-so even for the current versions. But despite these things, what makes people prefer something like Ansible over CFEngine?
Ansible gives you merely a way to execute commands on remote servers. Much touted idempotency is not a game changer, it's quite easy to achieve even if you write everything yourself.
CFEngine requires a different mindset, you need to (a) think of the servers running independently and (b) configure groups (classes) of servers, not individual servers, even grouped in a list of some kind, like Ansible works. Suddenly an environment becomes much easier to manage.