I am steadily evolving my understanding of Ansible. I came to Ansible before Puppet or Chef, so am slowly learning how I should be using it vs. what I thought I should be doing a few months ago. That said, I don't know if what I'm requesting makes sense or doesn't.
Initially I thought of playbooks as things I'd build to perform certain complex tasks, but my understanding has evolved to "things ranging from complex tasks to entire system configurations." Currently I have one playbook that includes a number of other playbooks/tasks to build up an app server with my preferred stack. I have another playbook that calls other tasks/playbooks to install Redmine, Jenkins, SCM-Manager and other apps that I use to develop other software.
So I find myself using playbooks to define server roles, and tasks/task includes to define actions I'd run on a number of servers regardless of what role they'd fill. I don't use host groups in inventory files at all. I understand the need, but for the apps I build at the scale I operate, a single server can run everything, and I don't need an app/database server for a single app. It's nice to know that I can grow into that, but for now it's just extra complexity and ceremony I don't need.
Instead of having to specify "hosts: all" in half a dozen playbooks, could we make that the default? I don't discount the need for tying a specific playbook to a specific group of hosts, but defaulting to all would seem to make the simplest cases even simpler. Assume that if I don't specify a series of hosts, then I mean everything. I've been testing playbooks enough on Vagrant to know that you're not likely to run a playbook on production servers without testing it. So why not make the extra complexity opt-in, rather than making it opt-out for those of us lucky enough to have simple use cases?
Thanks.