2017-01-22 80 views
0

Ansible版本2.2,Mac OS X El CapitanAnsible Jinja2用於打印輸出產生重複結果

我試圖生成端口映射列表。

當我運行像

--- 
- hosts: [localhost] 
    sudo: True 
    pre_tasks: 
    - debug: 
     var: "{% for id in range(100,102) %} 
       '{{ id }}' 
      {% endfor %}" 

我希望能得到導致這樣的代碼:

「 '100' '101'」

而是我得到的結果:

「'100''101'」:「100101 「

爲什麼我得到這樣的結果並不是很明顯。它看起來像從結果中創建某種地圖,但我不明白爲什麼。

回答

0

由於在debug模塊中使用var參數代替msg,您會得到預期結果,您只會看到不一致的輸出。

嘗試:

- hosts: localhost 
    tasks: 
    - debug: 
     msg: "{% for id in range(100,102) %} 
       '{{ id }}' 
       {% endfor %}" 

在較爲複雜的情況下,你可能會考慮調試的更可靠的方式,通過保存內容的文件和檢查的內容。這將消除顯示Ansible日誌的回調插件的影響。

- hosts: localhost 
    tasks: 
    - copy: 
     dest: ./result.txt 
     content: "{% for id in range(100,102) %} 
        '{{ id }}' 
        {% endfor %}" 

然後:

cat ./result.txt