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.