The upstream ansible folks have been discussing a 'best practices' doc
and I have been pondering how we want to setup things on our ansible
instance before we add a bunch more things to it.
So, some outstanding questions for comment/discussion:
a) I think I like the idea of splitting out per role trees for things.
But we need to decide what level of granularity a 'role' is.
For example, mirrormanager in puppet is a single module.
However, it's really:
mirrormanager proxy setup files
mirrormanager mirrorlist server web app
mirrormanager web app (the admin part)
mirrormanager backend scripts (crawler, creating lists, etc)
So, for our purposes should we have mirrormanager all in the same
'role' tree? or should we split it out by functionality?
Many roles won't have this issue, as they will be simpler.
b) What would be the workflow for staging with ansible?
Ie, I want to make some config changes only in staging and iron them
out and then merge them back to production when ready. Do we copy the
role and modify? Do we require only changing vars and seperate files?
Will be thinking on it more, but input welcome.