I know it's not the intended use case but I primarily utilize
Ansible for individual, customized hosts. It absolutely rocks when you
have dozens of systems to manage though. For individual hosts I use it
as a way of documenting how a system came to be in its state almost for
disaster recovery (i.e. what software was installed, config file
templates, etc.). If you find yourself setting up certain stuff
routinely, make it a "role" and reuse it like a function. I do cheat on those custom boxes though by
running through the ansible playbook that takes me 90% of the way there,
then a README to explain the little stuff I had to do by hand because
it's still easier to adjust something by hand sometimes.
Like any complex framework, it takes a bit of patience to learn and learn some more before getting to the payoff point. At least that's how it is for we mortals.