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.

Attachment: pgpEn2glT8xf5.pgp
Description: OpenPGP digital signature

Reply via email to