gpt4 book ai didi

ansible - 基于变量执行角色

转载 作者:行者123 更新时间:2023-12-04 17:52:09 25 4
gpt4 key购买 nike

我有一些奇怪的行为。我还是一个 Ansible 新手,所以我提前道歉。

我正在尝试根据我在此处看到的示例有条件地执行角色:https://github.com/atomicobject/ansible-laptop-playbook-example/blob/1785f25014fa5a7776de5b332d093b60bf59c8e0/laptop.yml

无论如何,我有一个host_vars/localhost:

has_thing: true

在我的顶级 site.yml 中,我有:

  -name: Title
hosts: all

roles:
- { role: myrole, when: has_thing is defined and has_thing == "true" }

这会跳过这个角色。

如果我这样做:

  -name: Title
hosts: all

roles:
- { role: myrole, when: has_thing is defined }

角色执行。

如果我这样做:

  -name: Title
hosts: all

roles:
- { role: myrole, when: has_thing == "true" }

它不起作用。

如果我这样做:

  -name: Title
hosts: all

roles:
- { role: myrole, when: has_thing != "true" }

还是不行。我不明白为什么,变量 has_thing 被明确定义了,因为只要我不测试它的值,它就可以工作。

我在这里错过了什么?

最佳答案

has_thing: true 是一个 bool 值,您可以使用 has_thing: 'true' 进行测试。

但最好更改您的 when 语句以处理 bool 值。

附言而且你不能有条件地执行一个角色这样一个角色,角色将始终执行,但是 when 语句将附加到该角色中的每个任务生成很多输出中跳过的任务数。

关于ansible - 基于变量执行角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43808935/

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