Tree
├── f2.j2
├── jinja2file.yml
f2.j2
{% set list=['test','test1','test2'] %}
{% for i in list %}
{{i}}
{% endfor %}
{% set list1=['one','two','three'] %}
{% for i in list1 %}
{% if i=='one' %}
------------>{{i}}
{% elif loop.index == 2 %}
------------>{{i}}
{% else %}
------------>{{i}}
{% endif %}
{% endfor %}
{% set dict={'key1':'value1'} %}
{% for key,value in dict.iteritems() %}
-------------->{{value}}
{% endfor %}
{% set dict1={'key1':{'key2':'value2'}} %}
{{ dict1['key1']['key2'] }}
jinja2file.yml
---
- hosts: all
gather_facts: no
tasks:
- name: copy with jinja2 syntax
template: src=/root/ansible-yaml/f2.j2 dest=/root/f2.j2
結果
test
test1
test2
------------>one
------------>two
------------>three
-------------->value1
value2
總結
- jinja中可以使用set定義臨時変量也可以直接使用ansible其他地方定乂変量,關于jinja變量的引用都是采用{{変量名}}的方式,當然里面你可以根據変量名數據類型選擇你想要的信息,比如dict={'key':'value'},直接{{dict}}會返回一個python dict數據,如果只需要key対應的值則需要{{dict['key']}}或者{{dict.get('key')}}其實這些都是python的標準用法,在jinja里面也可以直接使用, python的標準判斷用法爹殊,在jinja里面也可以直接使用跷睦,python邏輯判斷and or not在jinja的判斷中也可以直接使用。