in reply to YAML + template/reuse
I feel that the idea of “templating” is quite unnecessary here. “There is another way to do it.”™
In a situation like this one, there is definitely such a thing as being “too clever.” This approach, in this case, is complexity where simplicity should suffice. (And please note, I mean nothing adverse or personal in such an observation.)
Simply have one configuration-file that contains the base-settings, then another per-site config which can in some way supersede or augment what's been read from the base-settings file. (If merely “merging” the two hashes, as suggested by others, is sufficient, cool! But if not, there's lots of other things you could do with the two hashes .. base, and site-specific .. to get to where you want to be.