Yes. Or if you feel like ignoring the warnings^* about using variables in copy's "content":

    - name: Write to the file
      ansible.builtin.copy:
        content: |
          {% for server in servers %}
          {{ server }}
          {% endfor %}
        dest: "{{my_inv}}"

^* I do it quite often, looking for cases where the promised unexpected surprises happen, but I haven't found them yet. It'll probably happen some day when it least convenient. :)

On 7/31/23 3:41 PM, Abhijeet Kasurde wrote:
Use template module

```
---
- hosts: localhost
  gather_facts: no
  vars:
    servers:
        - servera
        - serverb
        - serverc
  tasks:
    - template:
        src: server.j2
        dest: output.txt
```

server.j2
```
{% for server in servers %}
{{ server }}
{% endfor %}
```

# cat output.txt
servera
serverb
serverc


On Mon, Jul 31, 2023 at 12:10 PM Veera <[email protected]> wrote:

    Here it is

    TASK [debug]
    
**************************************************************************************************************************
    ok: [localhost] => {
        "msg": [
            "servera",
            "serverb",
            "serverc",
            "serverd",
            "centos8-latest"
        ]
    }

    TASK [debug]
    
**************************************************************************************************************************
    ok: [localhost] => {
        "msg": "The List of VMs   is  ['servera', 'serverb',
    'serverc', 'serverd',  'centos8-latest']"
    }

    TASK [write the server list to the file /tmp/output.txt]
    
******************************************************************************
    ok: [localhost]

    PLAY RECAP
    
****************************************************************************************************************************
    localhost                  : ok=9    changed=0  unreachable=0  
     failed=0    skipped=0    rescued=0  ignored=0

    $ cat /tmp/output.txt
    ["servera", "serverb", "serverc", "serverd", "centos8-latest"]

    On Tuesday, August 1, 2023 at 12:17:12 AM UTC+5:30 Todd Lewis wrote:

        I mean, what does the output of

        - name: Dump result
          ansible.builtin.debug:
            msg: "{{ result }}"

        look like? It presumably has a 'json' field? Which itself
        contains a 'value'?
        Without a reasonable approximation of your input, I can't
        possibly suggest how to create expected output from it.

        On Monday, July 31, 2023 at 2:43:20 PM UTC-4 Veera wrote:

            it looks like
            'servera', 'serverb', 'serverc', 'serverd'


            and I want result to be like ..
            $cat /tmp/my_inv
            servera
            serverb
            serverc
            serverd


            On Tuesday, August 1, 2023 at 12:00:58 AM UTC+5:30 Todd
            Lewis wrote:

                What does your "result" look like?

                On Monday, July 31, 2023 at 1:11:16 PM UTC-4 Veera wrote:

                    While collecting the inventory from a dynamic
                    source , I am able to  filter the hostname and
                    print them as below as expected.

                    servera
                    serverb
                    serverc
                    serverd

                    when set to facts with set_fact  also fine  and
                    print in the order one below the other.
                    However when I try to write into a file with copy
                    module ,
                      - name:  Write to the file
                          ansible.builtin.copy:
                            content: "{{ result['json']['value']
                    |map(attribute='hostname') }}"
                            dest: "{{my_inv}}"

                    the format collapses as below.
                    'servera', 'serverb', 'serverc', 'serverd'

                    How can I write the  output  in the list
                    format(line by line)  as  this file will be used
                    to read  as an inventory for other tasks .









-- You received this message because you are subscribed to the Google
    Groups "Ansible Project" group.
    To unsubscribe from this group and stop receiving emails from it,
    send an email to [email protected].
    To view this discussion on the web visit
    
https://groups.google.com/d/msgid/ansible-project/a7a2ddf1-1da3-4576-96fe-252da18d8394n%40googlegroups.com
    
<https://groups.google.com/d/msgid/ansible-project/a7a2ddf1-1da3-4576-96fe-252da18d8394n%40googlegroups.com?utm_medium=email&utm_source=footer>.



--
Thanks,
Abhijeet Kasurde
--
You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CAFwWkHpNBmk4%2BJRAxtF94aTz7BVD7kouo_wF2mQhTGD%2B5R9%3Dvw%40mail.gmail.com <https://groups.google.com/d/msgid/ansible-project/CAFwWkHpNBmk4%2BJRAxtF94aTz7BVD7kouo_wF2mQhTGD%2B5R9%3Dvw%40mail.gmail.com?utm_medium=email&utm_source=footer>.

--
Todd

--
You received this message because you are subscribed to the Google Groups "Ansible 
Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/4877186b-3d97-2fb2-36e4-a6188010d328%40gmail.com.

Reply via email to