如何从ansible中的两个变量中获取非重复元素

甘达尔·哈拉德卡

我正在运行 Ansible 任务来创建 terraform 资源,代码如下:

- name: "Run terraform project: {{ tf_project }}"
  terraform:
    state: present
    force_init: true
    backend_config:
      bucket: "{{ tf_bucket_name }}"
      region: "{{ bootstrap_region }}"
      kms_key_id: "{{ tf_bucket_kms_id }}"
      encrypt: "true"
      workspace_key_prefix: "{{ target_infra }}"
      key: "{{ tf_project }}.tfstate"
    project_path: "../terraform_12/{{ tf_project }}"
    variables:
      target_region: XXXXXXX
    workspace: "Test"  

以下是变量的值:

hostvars[inventory_hostname]['Active_Regions']: ['eu-west-1','ap-southeast-2']
hostvars[inventory_hostname]['Region']:  'eu-west-1'

预期值:target_region: ['ap-southeast-2']

试过如下:

target_region: "{{ hostvars[inventory_hostname]['Active_Regions'] | difference(hostvars[inventory_hostname]['Region'] | list) }}"

但它不起作用。

注意:hostvars[inventory_hostname]['Active_Regions']hostvars[inventory_hostname]['Regions']是动态的。

弗拉基米尔·博特卡

第二个参数不是列表。你必须用括号括起来[],例如

  - set_fact:
      target_region: "{{ hostvars[inventory_hostname]['Active_Regions']|
                difference([hostvars[inventory_hostname]['Region']]) }}"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何计算的ArrayList中的重复元素?

在数组中查找非重复元素

对于列表中的每个元素,请选择该元素和3个随机非重复元素

获取Ruby中数组的随机非重复元素

如何获得数组中的非重复元素?

通过检查两个元素从数组中获取重复的值

如何在python列表中仅打印非重复元素?

遍历Tibco Designer中的非重复元素

在sqlserver表中获取重复元素

如何从两个列表中删除重复的元素(成对)?

在C#中,如何检查列表中的重复元素,然后打印重复元素的名称?

向量中的重复元素

Java:如何比较两个int []数组的非重复元素?

Dart如何获取列表中的最大重复元素

如何在PHP中的两个json对象之间检测重复元素

合并两个包含重复元素的数据框

MATLAB:如何从两个对应的列向量中删除重复元素?

从非原始类型的向量中删除重复元素

如何从两个不同的神经网络中获取两个变量列表

如何获取两个列表的公共元素并将其存储在新列表中而不重复

将两个列表合并到字典中,一个包含重复元素,一个包含整数

Python\\如何找出3个文件中的重复元素

如何在 Jinja2 ansible 中获取两个定义变量的总和

删除重复元素并从两个数组中取出一个元素

使用两个列表检查一个列表是否包含非重复元素

如何在 Pandas Dataframe 的列列表中获取非重复元素的计数?

如何在 Pandas Dataframe 的列列表中获取非重复元素的计数?

如何获取数组中的重复元素

如何从多个数组中复制非重复元素