gpt4 book ai didi

ansible - 如何检查是否定义了多个ansible变量而不发出警告?

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

我在角色开始时有一个任务:

- name: check if pg_* variables are defined
fail: msg="variable {{item}} is undefined"
when: "{{item}} is undefined"
with_items:
- pg_dbname
- pg_host
- pg_port
- pg_username
- pg_password

但是较新版本的 Ansible 会发出以下警告:

[WARNING]: when statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: {{item}} is undefined

删除 Jinja2 大括号当:item 未定义时不起作用,因为最终评估本质上相当于:

"pg_dbname" is undefined` # False
"pg_host" is undefined` # False
.
.
"pg_password" is undefined` # False

这不是我想要的。

最佳答案

名为 item 的变量始终with_items 循环内定义,并且您的任务对于所有五个任务都应具有skipped 状态您分配给它的字符串。

<小时/>

您想要检查实际变量是否存在:

when: vars[item] is undefined

关于ansible - 如何检查是否定义了多个ansible变量而不发出警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47474696/

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