2017-05-25 13 views
0

私はAnsible Playbookを書いていて、参照されているハッシュ内のネストされた変数にアクセスしようとしています。参照されるハッシュのネストされた変数にアクセスする方法。

ここに私のVARSファイルされる:

SourceIPs: 
    192.168.33.20: 
    DestIP: 192.168.33.30 
    Port: 22 
    192.168.33.30: 
    DestIP: 192.168.33.20 
    Port: 22 

ここでは私のタスクファイルです:

- name: Testing varibale access. 
    debug: 
    msg: " Source IP: {{ ansible_host }} corresponding Port IP and Port {{ SourceIPs[' {{ansible_host}} '] }} " 

この言っdict_objectを実行すると、{{ansible_host}}と呼ばれる何の変数を持っていないとき、それが失敗しました。したがって、それを現在のホストのIPアドレスに変換しないことは明らかです。

しかし、私はそうのような静的なホストのIPが含まれるようにタスクファイルを変更した場合:それは作品

- name: Testing varibale access. 
    debug: 
    msg: " Source IP: {{ ansible_host }} corresponding Port IP and Port {{ SourceIPs['192.168.33.30'] }} " 

、その特定のホストの値を取り戻します。

私が達成しようとしているのは、私が現在実行しているホストに関連付けられた値を取得することです。

答えて

1

Jinja2式では入れ子にしないでください。ラップを使わずに変数を使用することができます:

- name: Testing varibale access. 
    debug: 
    msg: " Source IP: {{ ansible_host }} corresponding Port IP and Port {{ SourceIPs[ansible_host] }} " 
+0

ああ、ありがとう、それを解決しました。 – raah