gpt4 book ai didi

Ansible,如何检查变量是否为空?

转载 作者:行者123 更新时间:2023-12-03 23:35:06 25 4
gpt4 key购买 nike

我有这个 var I 角色,我用它向 linux 用户添加授权 key ,所以 foo 可以是带有单个 ssh 公钥的字符串或多个公钥的列表。

默认情况下 foo 已定义但为空,因此即使用户未设置它也可以进行测试,这样如果为空,则不会执行相关任务。

我通常会使用 when: foowhen: not foo 并且它运行良好,除了现在 ansible trow 折旧警告说:

[DEPRECATION WARNING]: evaluating None as a bare variable, this behaviour will go away and you might need to add |bool to the expression in the future. Also see CONDITIONAL_BARE_VARS configuration toggle.. This feature will be removed in version 2.12. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.



我尝试过提到的 when: foo|bool 但每次变量填充一个不是 yes, true, Yes 的字符串时它都会返回 false ...
foo is defined 不起作用,因为定义了 var
foo != "" 不起作用,因为 var 为 null 而不是空字符串

富| length > 0 不起作用,因为 null 没有长度

老实说,我在这里没有想法。

最佳答案

我认为答案就在错误中。 “将 None 评估为裸变量”表明 foo 评估为 None。所以你需要:
when: foo != None

关于Ansible,如何检查变量是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60304415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com