'Ansible echo into file

I'm struggling with some Ansible/YAML syntax here. How do I echo multiple lines (in append mode) in to a file? I also can't use the copy module (with the content arg) because it has to be appended.

This code:

- name: Write backup script for each app
  shell: echo | '
      line one
      line two
      line three
      ' >> /manager/backup.sh

errors out with nonsensical:

"stderr": "/bin/sh:  line one line two line three : command not found"

I'm using the pipe because I think it's how you tell Ansible you want multiple lines (with preserved formatting), but maybe it's being used as a shell pipe.



Solution 1:[1]

I fixed it with:

ansible node -i hosts -m shell -a "echo 'line one\nline two\nline three' | sudo tee -a /tmp/test.file;"

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Victor Lee