如果远程环境变量没有';不存在?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}将变量逐个设置为强制变量