2016-05-31 28 views
0

下面的代碼運行正常,直到它的錯誤出在本地保存任務Ansible跳繩任務,因爲未定義的錯誤

- local_action: file dest=firewallinfo.txt state=touch 

    - name: "Gather firewall information" 
     script: firewall.sh 
     register: output 
    - debug: var=output 

    - name: Firewall Name 
     raw: hostname 
     register: output2 

    - debug: var=output2 


    - name: the file 
     raw: cat "{{item}}".csv 
     with_items: '{{output2.stdout_lines}}' 
     register: output3 

    - debug: var=output3 

這是我的代碼停止工作。有人知道爲什麼

- name: save locally 
    local_action: lineinfile dest=firewallinfo.txt line="{{item}}" 
    with_items: '{{output3.stdout_lines}}' 
+0

你會得到任何輸出嗎? – Railslide

+0

我得到的調試 - 調試:var = output3工作,但當我嘗試採取output3的stdout_lines並把它放入一個文件,它給了我這個錯誤[拒絕警告]:由於未定義的錯誤跳過任務,在未來這將是一個致命錯誤。此功能將在未來版本中刪除。可以通過在ansible.cfg中設置 deprecation_warnings = False來禁用棄用警告。 – ehuck

回答

0

變量output3是多項目任務的結果。
所以output3是一個與results列表中的字典。
您需要output3.results[i].stdout_lines[j]

更改你的任務是:

- name: save locally 
    local_action: lineinfile dest=firewallinfo.txt line="{{item}}" 
    with_items: "{{ output3.results | sum(attribute='stdout_lines', start=[]) | list }}" 

它會在每一個結果將所有stdout_lines,給你一個平面列表進行迭代。

+0

謝謝!!!這對我有效。 – ehuck