2017-05-25 60 views
0

我正在編寫一個Ansible Playbook,並試圖訪問引用哈希中的嵌套變量。如何訪問引用哈希中的嵌套變量。

這裏是我的var文件:

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