由于未定义的错误导致Ansible跳过任务

时间:2016-05-31 13:48:57

标签: ansible ansible-playbook

以下代码运行正常,直到它在“保存本地任务”

上出错
 - 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}}'

1 个答案:

答案 0 :(得分: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,并为您提供一个平面列表来迭代。