On Mon, 23 Sep 2019 23:44:58 -0700 (PDT)
Mohtashim S <mohtash...@gmail.com> 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 ansible-project+unsubscr...@googlegroups.com.
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