When I first came across Ansible, I was sceptical. Do I need to retool at this stage? What were the benefits? Is this new-fangled?
All those concerns went into the wastebin, and I'm happy to report that I've been using Ansible for some time now and probably wouldn't switch back.
It's not that there is anything deficient about Chef; in fact, I still think it is excellent, but for ease of use and peace of mind, Ansible is now my go-to server provisioning framework - I even use it to install Minecraft on my son's Raspberry Pi!
Here are some of the reasons why I'd encourage any Devop to try Ansible:
1) Ansible is agentless
This means server nodes don't need any software installed to be managed; they can be bare server nodes. On the other hand, Chef uses a server-based agent that runs on each server node, which must have access to the server provisioning server. This means that, unlike Ansible, Chef server nodes cannot be installed on "fresh" server nodes - they must be pre-configured with the Chef server software.
Ansible can be run remotely on a server provisioning server or locally on the server nodes. This makes it very versatile and easy to use.
2) Ansible configuration uses YAML
This makes them more accessible than Chef to read and edit for server provisioning purposes.
3) Ansible playbooks run in parallel
This is a great time-saver when provisioning multiple server nodes. Chef recipes can only be run sequentially.
4) Ansible is platform agnostic
It can provision server nodes on Linux, Mac or Windows operating systems. Chef is only really suitable for provisioning Linux server nodes.
5) Ansible has a large and active user base
This means that a lot of help and support is available online if needed. Chef has a smaller user base, which can make finding help more difficult.
6) Ansible is open source and free to use
Chef is not open source, making it complicated for server provisioning.
7) Ansible is easy to set up
All you need to get started is an Ansible server provisioning server and Ansible installed on your workstation. Chef requires a lot more set-up, including installing a server provisioning server and a server node agent on each server node.
8) Ansible is free from learning curves
It is easy to learn and use, even for server provisioning beginners. Chef can be much more challenging to learn and use, especially for server provisioning beginners.
9) Ansible is well-supported by the community
There is a lot of help available online if you need it. Chef is not as well supported by the community, making server provisioning issues take longer to resolve.
10) Ansible has a growing number of modules
This means that it can be used to manage a wide range of server nodes. Chef has fewer modules, making server provisioning more time-consuming, as you may have to create it from scratch.
11) Ansible is easy to automate
Ansible can be integrated easily with other server-provisioning server software. Chef requires more server provisioning server software integration to automate server provisioning tasks.
Ansible fanboy, 100% official.
Okay, so there was a bonus for the creative tech types. Please give Ansible a try when you have an hour to spare - it can be tested with Vagrant for speed, and I promise you won't be disappointed.