如果远程环境变量没有';不存在?Ansible将此视为致命错误。如何避免这种情况?

如果远程环境变量没有';不存在?Ansible将此视为致命错误。如何避免这种情况?,ansible,Ansible,我想使用远程环境变量进行一些检查,这些变量可以从如下格式读取 {{ ansible_env.NGINX_HOME }} 这个“路径”或环境变量可能不存在,这就是该检查的目的 但Ansible将此视为致命错误,并显示如下错误消息 一个或多个未定义的变量:“dict object”没有属性“NGINX\u HOME” 如何跳过此操作?如果变量未定义,则可以使用指定的默认值: {{ ansible_env.NGINX_HOME|default('') }} 如果该值不存在,则默认值为空字符串 另一

我想使用远程环境变量进行一些检查,这些变量可以从如下格式读取

{{ ansible_env.NGINX_HOME }}
这个“路径”或环境变量可能不存在,这就是该检查的目的

但Ansible将此视为致命错误,并显示如下错误消息

一个或多个未定义的变量:“dict object”没有属性“NGINX\u HOME”

如何跳过此操作?

如果变量未定义,则可以使用指定的默认值:

{{ ansible_env.NGINX_HOME|default('') }}
如果该值不存在,则默认值为空字符串

另一个选项是,如果在任务中使用该变量,则只有在定义该变量时,才能有条件地运行该任务:

- shell: echo {{ ansible_env.NGINX_HOME}}
  when: "'NGINX_HOME' in ansible_env"

您也可以在ansible.cfg中将所有变量设置为非强制变量

并使用{var | mandatory}将变量逐个设置为强制变量