如果远程环境变量不存在怎么办?Ansible认为这是一个致命的错误.怎么避免呢?

Zhe*_*kai 4 ansible

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

{{ ansible_env.NGINX_HOME }}
Run Code Online (Sandbox Code Playgroud)

这个"路径"或环境变量可能不存在,这也就是检查的目的.

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

一个或多个未定义的变量:'dict object'没有属性'NGINX_HOME'

我该怎么办才能跳过这个?

jar*_*arv 12

如果变量未定义,使用Jinja过滤器可以指定默认值:

{{ ansible_env.NGINX_HOME|default('') }}
Run Code Online (Sandbox Code Playgroud)

如果该值不存在,则将该值默认为空字符串.

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

- shell: echo {{ ansible_env.NGINX_HOME}}
  when: "'NGINX_HOME' in ansible_env"
Run Code Online (Sandbox Code Playgroud)