Ansible 过滤器 - 需要解释
Ansible filter - Need an explaination
我有一个 YML 文件来定义这样的变量。
例如:
/opt/ansible/role/defaults/main.yml
APP_NAME: False
SERVICE: "{{hostvars[inventory_hostname][APP_NAME] | default('')}}"
APP_HOME: "{{hostvars[inventory_hostname][APP_NAME]['variables']['app_home'] | default('') }}"
谁能告诉我 default
过滤器和 hostvars[inventory_hostname][APP_NAME]
的结果是什么。
非常感谢!
此特定情况下的 default 过滤器如下所示:
SERVICE: "{{hostvars[inventory_hostname][APP_NAME] | default('')}}"
获取特殊变量 hostvars
以获得将在其中工作的 inventory hostname
并应用过滤器 default('')
这意味着它已定义且为空。
它应该等同于 bash 如果 iirc:
SERVICE=${$(hostname -s):-}
这是一种将默认值设置为空但确保变量存在且“已定义”的方法。
我有一个 YML 文件来定义这样的变量。
例如:
/opt/ansible/role/defaults/main.yml
APP_NAME: False
SERVICE: "{{hostvars[inventory_hostname][APP_NAME] | default('')}}"
APP_HOME: "{{hostvars[inventory_hostname][APP_NAME]['variables']['app_home'] | default('') }}"
谁能告诉我 default
过滤器和 hostvars[inventory_hostname][APP_NAME]
的结果是什么。
非常感谢!
此特定情况下的 default 过滤器如下所示:
SERVICE: "{{hostvars[inventory_hostname][APP_NAME] | default('')}}"
获取特殊变量 hostvars
以获得将在其中工作的 inventory hostname
并应用过滤器 default('')
这意味着它已定义且为空。
它应该等同于 bash 如果 iirc:
SERVICE=${$(hostname -s):-}
这是一种将默认值设置为空但确保变量存在且“已定义”的方法。