有条件地创建变量

时间:2017-08-08 17:45:49

标签: ansible

我有一些在多个环境中运行的python代码。代码检查环境变量是否存在,并根据定义的环境变量采用略有不同的路径。代码是:

def _get_sink_to_function():
    # Determine which path we send data to, based on env variables
    # One of the following env variables must be present.
    funcdict = {
        'LOG_SINK':      _post_gzip_to_log_sink,
        'FIREHOSE_SINK': _post_gzip_to_firehose_sink
    }
    for v in funcdict.keys():
        if os.environ.get(v):
            return funcdict[v]
    return None

main():
    sink_to_func = _get_sink_to_function()
    if not sink_to_func:
        raise AssertionError('Missing mandatory env variable')
    ...
    sink_to_func(gzip_data)

使用ansible设置环境变量。

因此,我想有条件地创建environement变量。

例如,在此(有效)ansible代码中:

LOG_SYNC: "{% if logger == 'one' %}path-to-the-log{% endif %}"

始终定义LOG_SYNC,有时值为“path-to-the log”,有时为空。如果logger不等于'one',我希望根本不定义LOG_SYNC。

换句话说,我想要这样的东西:

{% if logger == 'one' %}
  LOG_SYNC: "path-to-the-log"
{% endif %}

但是,似乎不允许这样做。

1 个答案:

答案 0 :(得分:-1)

编译器,无论您编写什么语言代码,都需要先定义变量,如果以后随时使用它。

因此您需要定义变量,赋值NULL然后它不会占用任何内存