gpt4 book ai didi

Ansible:仅在未定义时设置变量

转载 作者:行者123 更新时间:2023-12-03 10:33:43 26 4
gpt4 key购买 nike

我想将 ansible 变量设置为某个默认值,但前提是该变量未定义。否则我想保持它不变。

我尝试了这两种方法,它们都产生递归循环:

namespace: "{{namespace|default(default_namespace)}}"
namespace: "{% if namespace is defined %}{{namespace}}{% else %}{{default_namespace}}{% endif %}"

最佳答案

看来您采取了错误的方法。
查看有关 variable precedence 的 Ansible 文档.如果 undefined variable ,则使用默认变量是 Ansible 的内置功能。
在 Ansible 2.x 中,变量优先级如下所示:

role defaults

inventory vars


所以如果你想为一个变量定义一个默认值,你应该在 role/defaults/main.yml 中设置它。 . Ansible 仅在变量未在其他地方定义时才使用该值。
另一种选择是使用 Jinja2 filter .使用 Jinja 过滤器,您可以为变量设置默认值,如下所示:
{{ some_variable | default(5) }}

关于Ansible:仅在未定义时设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35083756/

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