状态file.managed 具有 defaults和context用于模板渲染的选项。两者都提供模板变量的上下文。它们之间有什么区别?
defaults是在context没有适当值的情况下将传递给模板的后备默认值。如果context具有值-它将覆盖default。例如:
/etc/myconfig.cfg:
- file.managed:
- source: salt://myconfig.tmpl
- template: jinja
- defaults:
foo: bar
- context:
foo: baz
Run Code Online (Sandbox Code Playgroud)
在这种情况下,的值foo将始终为baz。通常context在需要条件值时使用。例如:
/etc/myconfig.cfg:
- file.managed:
- source: salt://myconfig.tmpl
- template: jinja
- defaults:
foo: bar
{% if salt[grains.get]("os") == 'Debian' %}
- context:
foo: baz
{% endif %}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,每个非Debian系统最终都将具有value bar,而Debian将baz在模板中具有。
| 归档时间: |
|
| 查看次数: |
455 次 |
| 最近记录: |