gpt4 book ai didi

ansible - 我可以根据 ansible 详细级别将 ansible no_log 设置为默认值吗?

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

有很多 ansible 模块默认情况下具有非常详细的输出,例如 syncfile 和所有 os_* 模块,它们有在控制台返回巨大结果的坏习惯。

ANSIBLE_VERBOSITY 级别对这些没有用,因为即使级别 0 也不会从输出中删除“结果”。

通过 ANSIBLE_STDOUT_CALLBACK 使用替代输出插件是另一个失败的原因,因为目前现有的替代回调都没有禁用这些插件的选项。

向每次出现的垃圾邮件模块添加 no_log: true 或更智能的替代方案(例如 no_log: result.rc == 0)实际上并不能扩展。

我知道可以在剧本级别定义no_log: true,但这不允许我有条件地启用日志记录。

最佳答案

如果您想要“干净”的解决方案,您绝对应该编写一个自定义回调插件,以将输出量减少到所需的水平。

但是您可以选择使用此解决方法根据详细程度有条件地模板 no_log:

---
- hosts: localhost
gather_facts: no
no_log: "{{ verbose_check | default(dict(skipped=true)) | skipped }}"
vars:
mydict:
password: abc
tasks:
- debug:
msg: "Shown only with verbosity > 2"
verbosity: 3
register: verbose_check

- debug:
var: mydict

debug 模块具有根据详细级别跳过的内置功能。我们可以注册它的输出并根据它定义no_log。而且由于 Jinja {{...}} 表达式在使用时是模板化的,而不是在定义时模板化的,因此以下每个任务都会将 no_log 计算为 truefalse 取决于我们的 verbose_check 的跳过状态。

关于ansible - 我可以根据 ansible 详细级别将 ansible no_log 设置为默认值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48583246/

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