On Mon, 23 Sep 2019 23:44:58 -0700 (PDT) Mohtashim S <[email protected]> wrote:
> command_result variable has has data like below.
>
> host6,host5\targ3
> host4,host3\targ1
> host1,host2,host5\targ2
> .....
> .....
>
> I need to loop through each line of command_result. Pick the host list for
> example host6,host5 and execute shell script using shell module by passing
> respective argument string i.e arg3.
Given the input is a list 'db_lines' normalise the data first. For example
the loop below
vars:
separator: '\t'
db_lines:
- 'host6,host5\targ3'
- 'host4,host3\targ1'
- 'host1,host2,host5\targ2'
tasks:
- set_fact:
my_data: "{{ my_data|default([]) +
[{'host': item.split(separator)[0].split(','),
'arg': item.split(separator)[1].split(',')}] }}"
loop: "{{ db_lines }}"
gives
my_data:
- arg:
- arg3
host:
- host6
- host5
- arg:
- arg1
host:
- host4
- host3
- arg:
- arg2
host:
- host1
- host2
- host5
It should be trivial to use it in the loops.
Cheers,
-vlado
--
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/20190924103105.29220bf7%40gmail.com.
pgpEn2glT8xf5.pgp
Description: OpenPGP digital signature
