One of the more difficult things about using Ansible is deciding on how to lay things out in the file system.
This is the layout I’ve settled on after a few different tries: https://gitlab.com/goozbach/ansible-layout
Multiple environment (devel, int, stage, prod)
Supports environments in different AWS accounts
Per-environment variables
Global variables
Hybrid inventory (AWS, local, and other hosts)
Secrets and variable are managed using smaller scopes