What do you like best?
LIGHT WEIGHT / AGENT-LESS
Ansible uses ssh and WinRM to communicate with servers, this means it is agent-less and lightweight and reduces your start-up time for new instances, and one less component to manage/update/upgrade.
Ansible allows the flexibility for both "pushing" and "pulling" of configuration management changes with the control server (Chef/Puppet are just a poll/pull model)
The coding structure has defaults, but is also flexible if you want to rearrange your files.
The modules are python based and the configuration files are YAML files. If you just use the available base and community modules, you may never have to see python code, and learning YAML is a cinch.
In comparison, Chef requires you to learn the ruby DSL in order to create configuration files, which forces you to first learn ruby before you can competently start using Chef, and the language itself has its own learning curve ...
What do you dislike?
The first Windows modules release was a bit flawed. The team is currently working on a new model using scheduled jobs to work around issues with COM object permissions via WinRM.
The team is also still working adding more base functionality that is available on Linux instances which still needs to be built out in powershell for Windows, even simple things like passing filepaths with spaces in them.
Still a long way to go to reach the success level of Chef/Puppet in this arena.
Recommendations to others considering the product:
If you are new to DevOps and only configuring for a Linux stack, Ansible is a great choice.
If you have any need to configure Windows, you might want to wait a while....
What problems are you solving with the product? What benefits have you realized?
Provisioning in AWS is working well, I like having the option to run things locally.and use local tools like AWSCLI to fill in the gaps with the modules.
Bringing up a configured nginx reverse proxy server was a cinch.
My pains are around getting a configured Wndows SQL server in AWS running, provisioning with WinRM enabled wasn't a problem, running powershell via WinRM does have its issues. Unfortunately this is what Windows offers so this is what ansible will have to deal with. There are solutions, but will take time to build into their base modules.