带有动态库存问题的Ansible塔:“任务包括带有未定义变量的选项”

问题描述 投票:0回答:1

我在Ansible Tower中使用AWS EC2动态清单,并且为我的实例添加了环境标记。例如:

键:环境

值:NonProd

这会创建一个组tag_Environment_NonProd,其中包含已标记的主机。现在,我要使用此组“ set_fact”:

- name: Determine nodes to join in NonProd
  hosts: tag_Group_Elasticsearch
  become: true
  tasks:
  - name: Setting nodes IPs 
    set_fact:
      NonProd_list: "{{ groups['tag_Environment_NonProd'] | map('extract', hostvars, ['ansible_host']) | list }}" 

我仅不时启动非Prod标签的实例,因此tag_Environment_NonProd组并非始终可用,这就是我面临此问题的原因。

我尝试了以下条件,但没有帮助:

何时:定义了tag_Environment_NonProd

当:((组名称中的'tag_Environment_NonProd')]

我也尝试过忽略错误,但显然它也不适用于“未定义的变量”。

任何人都有解决此问题的想法?

非常感谢。

Dragan

variables ansible ansible-inventory
1个回答
0
投票

全局方法是确保在未定义变量时始终有一个值。为此使用default filter

当组不存在(或为空)时,以下将default设置为空列表。这样,您可以解决当前的错误,并且以后不必测试set var是否存在。

NonProd_list
© www.soinside.com 2019 - 2024. All rights reserved.