2016-02-01 67 views
2

例如修改列表項你有你的角色列表變量...在Ansible/Jinja2的

myitems: 
    - one 
    - two 

...要修改內Ansible每個項目(如前追加字符串/後) ,你可以...

回答

5

...在你的角色的vars/main.yml文件創建以下兩個變量做的伎倆(或每隔一個地方瓦爾可以定義):

interim_string: "{% for item in myitems %}with-{{item}}X {% endfor %}" 
result_list: "{{ interim_string.split() }}" 

所得result_list個現在包含以下值:

- with-oneX 
- with-twoX 

定義interim_string時提起x後的空白。它用於將interim_string再次分割成一個列表。您可以用另一個字符或序列分隔(例如split('#'))。但是,這會導致在result_list末尾出現空的列表項。

1

的另一種方式,我發現達到同樣的效果:

{{ ansible_play_hosts | zip_longest([], fillvalue=':2181')| map('join') | join(',') }} 

相貌醜陋,但由於ansible_play_hosts=['a', 'b']它產生a:2181,b:2181