I have used both Ansible and and Ambari (from Hortonworks) to deploy and maintain our big data stack. They each have pros and cons
Ansible
Pros:
- More flexible
- Easier to update separate components
- Bring-your-own monitoring & alerting
Cons
- Higher initial time to setup playbooks
- Rolling update configuration is a pain
- Upgrading components require more compatibility testing
- Lack built-in monitoring & alerting
Ambari
Pros:
- Easier to setup from scratch (step-by-step wizard for everything)
- Changing configuration is easy, you change one components, and other components are update accordingly. It also notify you which software in which nodes need to be restarted and allow you to do rolling restart seamlessly.
- Components integrate well with each others, so less time is needed for compatibility testing.
- Back-ported of important patches .
- Built-in monitoring and alerting
Cons:
- Older software version, albeit with back-ported patches
- Cannot upgrade separated components
- Less easy to integrate with your existing monitoring infrastructure.
I also find it easier to train new team members to use an existing Ambari installation than to maintain Ansible playbooks. We are now using Ambari to maintain the more stable parts of our big data stacks (HDFS, YARN, etc), and use Ansible for the part which are still improving rapidly (Kafka, Flink, Presto, etc)