thanks for the reply, I had also thought of that solution and it's
perfectly viable for my example (thanks). however was looking for
something that doesn't use multiple variables and avoids repetition. My
example was just a simple one, in some cases I have more complex jinja
statements and the crux of what I was after was how to nicely do complex
multiline jinja statements that use lists.
On Wednesday, May 8, 2019 at 1:11:43 PM UTC-7, Kai Stian Olstad wrote:
>
> On 03.05.2019 22:15, Adam E wrote:
> > Hi there, I have some logic that I want to apply when creating assigning
> a
> > list to a variable.
> >
> > See my sample playbook below, Ideally i'd like a nice clean way to have
> a
> > logic based list. the "users" approach works, however it's always
> > interpreted as a string. The only solution I can think of to fix this
> one
> > is to store it as a string and then split it later. But I would like to
> > know if it's possible to return a list somehow. Maybe there's a
> different
> > syntax that i'm not aware of. Can anyone offer a better way to do
> > something like below?
> >
> > - hosts: localhost
> > connection: local
> > vars:
> > # THIS does not work as it's interpreted as a string, would have to
> > split in a new var?
> > # is there anything I can do here to keep a similar syntax but
> return a
> > list?
> > users: >-
> > {% set cusers = ['user1', 'user2'] %}
> > {% if ansible_distribution == "RedHat" %}
> > {{ cusers.append('redhat_user') }}
> > {% else %}
> > {{ cusers.append('other_user') }}
> > {% endif %}
> > {{ cusers | list }}
> > # THIS works but a little ugly with the newline
> > users2: "{% set cusers = ['user1', 'users2'] %}\
> > {% if ansible_distribution == 'RedHat' %}\
> > {{ cusers.append('redhat_user') }}\
> > {% else %}\
> > {{ cusers.append('other_user') }}\
> > {% endif %}\
> > {{ cusers }}"
>
> Something like this should work
>
> vars:
> cuser: ['user1', 'user2']
> users: "{{ cuser + ['redhat_user'] if ansible_distribution == 'RedHat'
> else cuser + ['other_user'] }}"
>
> --
> Kai Stian Olstad
>
--
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/14fa6ba6-67c2-4113-9d75-4c2312f0dc7b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.