我有一个这样的支柱数据集;
vlan_tag_id:
nginx: 1
apache: 2
mp: 3
redis: 4
Run Code Online (Sandbox Code Playgroud)
在公式sls文件中我这样做;
{% set tag = pillar.get('vlan_tag_id', 'u') %}
Run Code Online (Sandbox Code Playgroud)
所以现在我有一个变量tag,这是一个字典{'apache': 2, 'nginx': 1, 'redis': 4, 'mp': 3}
在运行时,我传递一个支柱数据,app其值将是
1. apache
2. nginx
3. redis
4. mp
Run Code Online (Sandbox Code Playgroud)
因此,如果在运行时我通过,apache我想要一些能让我获得价值的东西2
我不能这样做,{{ salt['pillar.get']('vlan_tag_id:app', '')}}因为app本身就是一个变量.
我尝试了{{salt'pillar.get'}},但它会抛出错误.
我怎样才能做到这一点 ?
既然tag只是另一本字典,你也可以这样做:
{%- set tag = pillar.get('vlan_tag_id', 'u') %}
{%- set app = pillar.get('app') %}
{{ tag.get(app) }} # Note lack of quotes
Run Code Online (Sandbox Code Playgroud)
如果要使用冒号语法,可以将内容附加app到键字符串:
{%- set app = pillar.get('app') %}
{{ salt['pillar.get']('vlan_tab_id:' + app) }}
Run Code Online (Sandbox Code Playgroud)
我发现如果我将别名作为别名并将其分解,则更容易理解:
{%- set pget = salt['pillar.get'] %}
{%- set app = pget('app') %}
{%- set tag = pget('vlan_tag_id') %}
{{ tag.get(app) }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2016 次 |
| 最近记录: |