Here is a solution using regex and map. It's not the most computationally 
efficient, but it works.

---
- hosts: localhost
  tasks:
    - name: set first fact
      set_fact:
        list1:
          - value1
          - value2

    - name: set second fact
      set_fact:
        var1: "{{ list1 | map('regex_replace', '^(.*)$','label \\1')  | 
list }} "

    - name: print second fact
      debug:
        var: var1

Regards,
Matt


On Friday, May 3, 2019 at 3:00:45 AM UTC+10, Mark Tovey wrote:
>
>
>
>     I have a list:
>
> list1
>
>     - value1
>
>     - value2
>
>  
>     and I want to use set_fact create a new variable that contains these 
> variables with a label in front of them, so that this debug task:
>
> - debug:
>
> msg:  "{{var1}}"
>
>
>      would result in output that looks like this:
>
> label value1
>
> label value2 
>
>
>     This gives me the expected results:
>
> - set_fact:
>
> var1:  |+
>
> "{{'label ' ~ list1[0]}}"
>
> "{{'label ' ~ list1[1]}}" 
>
>
>     But I need more flexibility than that.  I need to be able to add or 
> remove values to or from the list and not have to modify the set_fact task 
> each time to accommodate the modification.  I tried using the join filter:
>
> - set_fact:
>
> var1:
>
> "{{'label ' ~ list1 | join('\n')}}"
>
>
>      And that got me:
>
> label value1
>
> value2
>
>
>     Close, but not quite.  So what is the best method of achieving what I 
> want? 
>
>  
>
>  
>
>
>

-- 
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 post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/3f8bb125-1b2c-4961-b04c-2cc39e6827d4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to