For our internal tooling we use something similar to a bash profile config file with name/value pairs separated by linebreaks. So, our configs look something like:
env=staging
db=0.0.0.0
#descriptive comment
etc=true
env=staging
db=0.0.0.0
#descriptive comment
etc=true
[section_name]
key=value
key=value