2015-09-11 55 views
0

在我ansible的一個角色,我想建立一個基本的網絡/接口節,就像這樣:如何引用變量變量的Jinja2模板

auto eth1 
ifaces eth1 inet dhcp 
    dns-nameserver {{ ansible_eth1.ipv4.address }} 
    dns-search maas 

我有變數,我創建的節jinja2模板:

auto {{ iface }} 
ifaces {{ iface}} inet dhcp 
    dns-nameserver {{ ansible_{{ iface }}.ipv4.address }} 
    dns-search maas 

我可以在模板中引用變量變量嗎?我也嘗試在ansible yaml中創建一個變量,比如nserver:ansible _ {{iface}}。ipv4.address,這也不起作用!

回答

3

您可以使用內置的hostvars dict變量來引用主機的變量。

auto {{ iface }}                 
iface {{ iface }} inet dhcp  
    dns-nameserver {{ hostvars[inventory_hostname]['ansible_'+ iface]['ipv4']['address'] }} 
    dns-search maas 

​​是Ansible已知的當前主機的名稱。

+0

工作得很好,謝謝! – Greg