Note that lookup plugins will get executed once per host, it may be better to download it once from s3 and then load it via a lookup plugin to avoid s3 hammering.
You could really put the file anywhere you want, though something outside of your git directory seems wise, or otherwise configure .gitignore
Yes, a structure could look like this:
{{ lookup('file', '/path/to/file') | to_json }}
I don't know how complex your infrastructure is, but you may also wish to consider a custom inventory plugin that loads in those variables instead - it would be easier, and *PERHAPS* more appropriate.
But if you have a small infrastructure maybe not. If you are trying to model a large MSP environment, absolutely.