Ansible Настройка локального файла журнала, содержащего несколько задач, выводимых из playbook

В моем playbook у меня есть две основные задачи: одна задача, которая изменяет последнюю цифру шлюза для машин Debian, а вторая применяется к машинам Redhat, все работает нормально, но возможность отслеживать машины, на которых задачи были успешно выполнены, в локальном файле ( вид бревна).

Пытался зарегистрировать результаты обеих задач реестром

для Debian:

 name: change default gateway address
      replace:
        path: /etc/network/interfaces
        regexp: '(up route add default gw [d]*.[d]*.[d]*).[d]*$'
        replace: '1.254'
        backup: yes
      when: (ansible_facts['distribution'] == "Debian")
      register: debresult

для Redhat:


- name: change default gateway address on Redhat
      replace:
        path: /etc/sysconfig/network-scripts/ifcfg-eth0
        regexp: '(GATEWAY=[d]*.[d]*.[d]*).[d]*$'
        replace: '1.254'
        backup: yes
      when: (ansible_facts['distribution'] == "RedHat")
      register: redresult

а затем я добавил задачу для регистрации измененных хостов:


    - name: log the changed hosts
      local_action:
        module : copy
        content: "{{ansible_facts.hostname}}{{debresult}}"
        content: "{{ansible_facts.hostname}}{{redresult}}"
        dest: /tmp/changed.txt

Я пытаюсь получить такой журнал:

debianhostname {"msg": "", "success": true, "changed": true}
redhathostname {"msg": "", "success": true, "changed": true}

Но проблема в том, что я получаю только последний вывод, так как же можно иметь обе записи в моем файле? есть ли модуль, который я могу использовать? Я пробовал local_action с копией, set_fact, но это не сработало.

1 ответ
1

вот ответ, используя максимальное количество доступных модулей:

 - name: log the changed hosts
      local_action:
        module : lineinfile
        line: "{{ ansible_facts['hostname'] }} {{item}}"
        dest: /tmp/changed.txt
      with_items:
        - "{{debresult}}"
        - "{{redresult}}"

    Добавить комментарий

    Ваш адрес email не будет опубликован.