2012-07-16 26 views
14

tôi sử dụng các biến môi trường trong phần chương trình Supervisord, và họ chỉ làm việc tốt:Làm cách nào để sử dụng các biến môi trường trong phần cấu hình [supervisord] của Giám sát?

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

tôi không thể tìm ra mặc dù làm thế nào để làm điều tương tự trong [supervisord] phần. tôi đã cố gắng sử dụng cú pháp tương tự có và không có tiền tố ENV_, nhưng nhận được lỗi sau:

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' 

Có cách nào để đạt được điều đó?

Trả lời

9

Người giám sát chỉ hỗ trợ mở rộng với biến môi trường ở một số địa điểm giới hạn, mỗi vị trí được ghi lại trong configuration documentation.

Thật không may, tùy chọn [supervisord]directory không phải là một trong số đó; nó chỉ hỗ trợ biến số %(here), không có gì khác.

Bạn có thể gửi yêu cầu tính năng này trong supervisord issue tracker nếu đây là vấn đề quan trọng đối với bạn.

Trong các dự án của mình, chúng tôi thường sử dụng zc.buildout để thiết lập môi trường triển khai và phát triển có thể dự đoán và lặp lại và tạo cấu hình giám sát từ mẫu. Có một specialized buildout recipe để thực hiện tác vụ này dễ dàng hơn.

+0

Cảm ơn, Martijn. Rõ ràng đã có một yêu cầu tính năng mở trong [tracker theo dõi vấn đề giám sát] (https://github.com/Supervisor/supervisor/issues/126) – syoavc

+0

Vì vậy, có; bạn có thể để lại nhận xét với trường hợp sử dụng cụ thể của bạn, để minh họa tính hữu dụng của đối tượng địa lý. –

+0

Tính năng đã được hợp nhất kể từ tháng 6 năm 2014; thật thú vị, bản phát hành 3.2 vẫn chưa được phát hành và nó đã được một năm kể từ lần phát hành cuối cùng. – tutuDajuju

Các vấn đề liên quan