gpt4 book ai didi

vagrant - 无法使用条件

转载 作者:行者123 更新时间:2023-12-02 03:27:39 24 4
gpt4 key购买 nike

我有一个仅在运行 vagrant 时定义的变量:

is_vagrant: yes

当我运行其他 playbook 时,它没有定义,因为不包含 var。

当我在 ansible 中做的时候:

when: is_vagrant is defined

无论是否定义,它都像魅力一样工作。

但是当我使用这样的东西时:

when: gitclone.changed or is_vagrant is defined

即使包含 is_vagrant var,它也会跳过任务。我不确定为什么?

最佳答案

当涉及到变量扩展时,我已经放弃相信 ansible 会做正确的事情。因此,即使当 ansible 试图用诸如“你不需要使用 {{}}”“”之类的消息来误导我时,我仍然如此。

你试过吗:

when: "{{ gitclone.changed or is_vagrant is defined }}"

-- 编辑--

when: "{{ is_vagrant is defined or ( gitclone is defined and gitclone.changed ) }}"

Why do I have to check the defined. .changed is true or false I assume?

如果您希望任务在 undefined variable 时“失败”,则不必检查它是否已定义。但是,如果您不想要 UndefinedError: 'git_output' 错误,那么您可以检查一下。

changed 位于 git_output 内,因此如果未定义 git_output git_output.changed 未定义扩展名。

关于vagrant - 无法使用条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29546145/

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