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.