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 }}"
tasks:
- debug:
msg: "user: {{ item }}"
loop: "{{ users2 }}"
--
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/43910e1c-fa03-4bde-8a6d-ff995921238f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.