2012-07-16 20 views
14

que utilizan variables de entorno en sección del programa de Supervisord, y trabajan muy bien:¿Cómo uso las variables de entorno en la sección de configuración [supervisord] de Supervisord?

[program:some_prog] 
command=%(ENV_env_var_name)s/... 

no puedo averiguar cómo a pesar de hacer lo mismo en la sección [supervisord]. He intentado utilizar la misma sintaxis con y sin el prefijo ENV_, pero conseguir el error siguiente:

Traceback (most recent call last): 
    File "/usr/local/bin/supervisord", line 9, in <module> 
    load_entry_point('supervisor==3.0a12', 'console_scripts', 'supervisord')() 
    File "/usr/local/lib/python2.7/dist-packages/supervisor-3.0a12-py2.7.egg/supervisor/supervisord.py", line 356, in main 
    options.realize(args, doc=__doc__) 
    File "/usr/local/lib/python2.7/dist-packages/supervisor-3.0a12-py2.7.egg/supervisor/options.py", line 419, in realize 
    Options.realize(self, *arg, **kw) 
    File "/usr/local/lib/python2.7/dist-packages/supervisor-3.0a12-py2.7.egg/supervisor/options.py", line 284, in realize 
    self.process_config_file() 
    File "/usr/local/lib/python2.7/dist-packages/supervisor-3.0a12-py2.7.egg/supervisor/options.py", line 478, in process_config_file 
    Options.process_config_file(self, do_usage=do_usage) 
    File "/usr/local/lib/python2.7/dist-packages/supervisor-3.0a12-py2.7.egg/supervisor/options.py", line 292, in process_config_file 
    self.read_config(self.configfile) 
    File "/usr/local/lib/python2.7/dist-packages/supervisor-3.0a12-py2.7.egg/supervisor/options.py", line 527, in read_config 
    section.directory = existing_directory(directory) 
    File "/usr/local/lib/python2.7/dist-packages/supervisor-3.0a12-py2.7.egg/supervisor/datatypes.py", line 336, in existing_directory 
    nv = v % {'here':here} 
KeyError: 'var_name' 

¿Hay una manera de lograr eso?

Respuesta

9

Supervisor solo admite expansiones con variables de entorno en un número limitado de ubicaciones, cada una de las cuales está documentada en el configuration documentation.

Desafortunadamente, la opción [supervisord]directory no es una de ellas; solo admite la variable %(here), nada más.

Puede presentar una solicitud de función para esto en el supervisord issue tracker si este es un problema importante para usted.

En mis proyectos, generalmente utilizamos zc.buildout para que la configuración del entorno de despliegue y desarrollo sea predecible y repetible, y generemos la configuración del supervisor a partir de una plantilla. Hay un specialized buildout recipe para facilitar esta tarea.

+0

Gracias, Martijn. Aparentemente ya hay una solicitud de función abierta en [seguidor de problemas de supervisión] (https://github.com/Supervisor/supervisor/issues/126) – syoavc

+0

Así que hay; puede dejar un comentario con su caso de uso específico tal vez, para ilustrar la utilidad de la característica. –

+0

La característica se ha fusionado desde junio de 2014; Curiosamente, el lanzamiento 3.2 aún no se ha lanzado y ha pasado un año desde el último lanzamiento. – tutuDajuju

Cuestiones relacionadas