首页 > 解决方案 > 有条件的 with_items

问题描述

我有两个项目清单:

list1:
 - element1
 - element2

list2:
 - element1
 - element2

和定义在group_vars

env: x #can be either dev or stg

我想要执行的是:

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

如果上面不清楚,我基本上想为 list1 中定义的项目运行此任务,如果给定主机的 var 设置为 ,如果给定env主机的 var 设置为stg,ELSE 为 list2 中定义的项目运行它。envdev

我怎样才能达到这样的结果?

标签: ansible

解决方案


你可以像这样使用 if 条件,

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

推荐阅读