2016-09-22 14 views
0

私はこのようなピラーデータセットを持っています。変数を使用してピラーデータにアクセスする方法は?

vlan_tag_id: 
    nginx: 1 
    apache: 2 
    mp: 3 
    redis: 4 

私はこれを行います。

{% set tag = pillar.get('vlan_tag_id', 'u') %} 

ので、今、私は柱のデータを渡す実行時に辞書{'apache': 2, 'nginx': 1, 'redis': 4, 'mp': 3}

あるtag変数app、その値のいずれか

1. apache 
2. nginx 
3. redis 
4. mp 

なりを持っているので、もし実行時の私は、パスapache私は私に価値を得る何かにしたい2

I caアプリケーション自身が変数であるため、{{ salt['pillar.get']('vlan_tag_id:app', '')}}を実行してください。

{salt'pillar.get '}}を実行しようとしましたが、エラーが発生します。

どうすればいいですか? tag以来

答えて

4

はあなたにもそれでgetを行うことができ、ちょうど別の辞書です:

{%- set tag = pillar.get('vlan_tag_id', 'u') %} 
{%- set app = pillar.get('app') %} 
{{ tag.get(app) }} # Note lack of quotes 

あなたはコロン構文を使用する場合は、キーの文字列にappの内容を追加することができます

{%- set pget = salt['pillar.get'] %} 
{%- set app = pget('app')   %} 
{%- set tag = pget('vlan_tag_id') %} 
{{ tag.get(app) }} 
:私はpillar.getをエイリアスと少しそれを破るならば、それは単純に従うことを見つける
{%- set app = pillar.get('app') %} 
{{ salt['pillar.get']('vlan_tab_id:' + app) }} 

関連する問題