I like it (and am doing something similar on a hobby django project), but will this be hard to maintain? Say you're spinning up a new non-heroku server or three. Are there good tools for moving the env variables without making mistakes?
Your production app settings live in a separate repository that is kept much more secure than the other project files. These exist as host_vars files that you can simply drop in the host_vars directory in your ansible configuration and run the deploy script.
A sample host_vars can be included for either setting up a dev vagrant box or even your staging setup, if you don't have any really secret API keys.
That way you can move things around, spin up new boxes or what have you, simply by creating new host_vars files or moving them around.