Conditional with_items

Viewed 34

I have two lists of items:

list1:
 - element1
 - element2

list2:
 - element1
 - element2

and a variable defined in group_vars

env: x #can be either dev or stg

And what I would like to perform is:

- name: Create database
  influxdb_database:
    hostname: xyz
    database_name: "{{ item }}"
    .
    .
  with_items: list1 if env is stg
  with_items: list2 if env is dev

If above is not clear, I basically want to run this task for items defined in list1, if env var for given hosts is set to stg, ELSE run it for items defined in list2 if env var for given hosts is set to dev.

How do I achieve such results?

1 Answers

You can use if conditional like so,

- name: Create database
  influxdb_database:
    hostname: xyz
    database_name: "{{ item }}"
    .
    .
  with_items: "{{ list1 if env == 'stg' else list2 }}"
Related