ansible循环with_together复制

时间:2019-04-09 14:18:25

标签: loops ansible

我想循环显示三个列表,并将每个值推送到文件中。

我尝试使用此块来打印输出并查看结果:

Execute SQL Task

我尝试这样做,以打印到文件中

  - debug:
      msg: "{{item.0}};{{item.1}};{{item.2}}" 
    with_together:
      - "{{organization_name}}"
      - "{{logical_value}}"
      - "{{physical_value}}"

内容:

  

py_; 0; 0

但是看起来像这样:

  

sa_; 15891519; 1951981 ox_; 6485; 651655 qs_; 54; 64 py_; 0; 0

但是我只有最后的结果。有人可以帮助我吗?

亲切的问候

1 个答案:

答案 0 :(得分:0)

copy任务将覆盖目标文件。与其将内容追加到目标文件中,不如将其替换为循环的每次迭代。

您可能想使用template任务。如果我们使用这样的模板:

{% for item in organization_name|zip(logical_value, physical_value) %}
{{ ';'.join(item) }}
{% endfor %}

还有这样的剧本:

---
- hosts: localhost
  gather_facts: false
  vars:
    organization_name:
      - org1
      - org2
      - org3
    logical_value:
      - l1
      - l2
      - l3
    physical_value:
      - p1
      - p2
      - p3
  tasks:
    - template:
        src: ./data.in
        dest: ./data.out

我们得到的输出如下:

org1;l1;p1
org2;l2;p2
org3;l3;p3