I've got this /etc/profile.d/myfile.sh:
export MYVAR=myval
I also have a PassEnv MYVAR line in a <virtualhost> section of an apache conf dir.
That lets me do things like:
$ echo $MYVAR
myval
$ python
>>> import os; os.getenv('MYVAR')
'myval'
$ sudo echo $MYVAR
myval
$ sudo -i
root# echo $MYVAR
myval
But then, despite that being the case I get:
root# /sbin/service httpd restart
/sbin/service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [Mon Oct 22 14:44:02 2012] [warn] PassEnv variable MYVAR was undefined
[ OK ]
And all of my attempts to access MYVAR from within my wsgi scripts just don't work.
Thoughts? Am I doing something obviously wrong?
EDIT for more detail
I've got a swarm of computers/VMs and a swarm of developers working on a swarm of projects. I need a simple central place to keep environment information, the most common is the "environment" (dev/stage/prod). The scheme that we've got (modifying *.wsgi programmatically) is turning out to be more fragile than we'd like.
The main options that I see are:
put things in the shell environment
put things in other config files
Getting things into the shell environment is the best, because we won't need to write yet more duplicated "what is my environment" code.