ANSIBLE петля с общей копией - PullRequest
0 голосов
/ 09 апреля 2019

Я хочу зациклить три списка и выдвинуть каждое значение в файл.

Я пытаюсь этот блок распечатать вывод и увидеть результат:

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

Я пытаюсь это, чтобыраспечатать в файл:

  - name: write in csv
    copy:
      content: "{{item.0}};{{item.1}};{{item.2}}"
      dest: "./footprint_storage_by_organization.csv"
    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 голосов
/ 09 апреля 2019

Задача 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...