Maybe the problem is that I'm not an ansible professional.
Maybe the problem is that I'm not an ansible professional.
And yes, there are public roles for bringing up MySQL, here's one of the more popular:
Along the same lines, there are also .cfg files and roles that can live outside the root directory.
I've been able to get decent reusability out of roles, but that's mostly because I can live with my servers all being deployed the same way (e.g. they all have the same nginx config with minimal customization points and share the same certificates).
Usually virtualenv + requirements.txt + all configuration inside playbook repository should make for a painless experience without one (save for speed).
This is in stark contrast with my experience with the Puppet Forge, which my environment uses 20+ modules from for managing different parts of our systems.