小编cue*_*dee的帖子

为什么“default( None )”并不总是显示为“None”

是否有逻辑推理可以解释为什么debug下面的 Ansible 剧本中的两个任务分别输出"NONE""FALSE"而不是两者都输出"NONE"

- hosts:  'all'

  tasks:

    - debug:
        msg: '{{ foo | default( None ) | ternary( "TRUE", "FALSE", "NONE" ) }}'

    - debug:
        msg: '{{ bar | ternary( "TRUE", "FALSE", "NONE" ) }}'

  vars:

    bar: '{{ foo | default( None ) }}'
Run Code Online (Sandbox Code Playgroud)

ansible@2.8.5顺便说一句,我观察到了这一点


[编辑@2019-10-16]

从 @VladimirBotka 的回答推断,人们可以说真正的“问题”是相None对于替换而言不具有传递性。我的使用default(...)不必要地使事情复杂化,该示例可以简化为:

- hosts: 'all'
  tasks:
    - debug:
        msg: '{{ None | ternary( "TRUE", "FALSE", "NONE" ) }}'

    - debug: …
Run Code Online (Sandbox Code Playgroud)

jinja2 ansible

6
推荐指数
1
解决办法
6816
查看次数

标签 统计

ansible ×1

jinja2 ×1