可用于sls文件和文件模板的模板引擎加载了许多上下文变量。 这些变量包含帮助模板生成的信息和功能。 请参见下面的每个变量以了解其可用性–并非所有变量在所有模板环境中都可用。
您也可以参考在Github上维护的这一份技术资料:SLS Template Variable Reference
Salt
salt
变量用于抽象salt库函数。 此变量是python字典,其中包含运行中的Salt Minion可用的所有功能函数。 在所有salt模板中均可用。
{% for file in salt['cmd.run']('ls -1 /opt/to_remove').splitlines() %}
/opt/to_remove/{{ file }}:
file.absent
{% endfor %}
Opts
opts
变量将minion的配置文件的内容直接抽象到模板中。 opts
变量是字典。 在所有模板中均可用。
{{ opts['cachedir'] }}
config.get
函数也是在opts
词典中搜索值。
Pillar
pillar
字典可以直接引用,并且在所有模板中可用:
{{ pillar['key'] }}
通常建议通过salt
变量调用pillar.get
函数,因为这可以在没有值的情况下安全地设置一个默认值,并且可以直接遍历字典:
{{ salt['pillar.get']('key', 'failover_value') }}
{{ salt['pillar.get']('stuff:more:deeper') }}
Grains
grains
字典使minions的grains直接可用,并且在所有模板中可用:
{{ grains['os'] }}
grains.get
函数可用于遍历更深的grains并设置默认值:
{{ salt['grains.get']('os') }}
saltenv
从环境收集sls时,saltenv
变量仅在sls文件中可用。
{{ saltenv }}
sls
sls
变量包含sls参考值,并且仅在实际的SLS文件中可用(在该SLS中引用的任何文件中均不可用)。 sls参考值是用于在top file文件中或通过include选项将sls包括在内的值。
{{ sls }}
slspath
slspath
变量包含当前sls文件的路径。 当前sls中引用的文件中slspath的值取决于引用方法。 对于jinja includes,slspath是当前文件的路径。 对于salt includes,slspath是包含文件的路径。
{{ slspath }}