gpt4 book ai didi

automation - Ansible 'no_log' 用于调试输出中的特定值,而不是整个模块

转载 作者:行者123 更新时间:2023-12-05 01:31:41 25 4
gpt4 key购买 nike

我正在学习 RedHat 认证的 Ansible 自动化专家 (EX407),我正在研究 no_log 模块参数。我有一个这样构造的示例剧本;

---
- hosts: webservers
tasks:
- name: Query vCenter
vmware_guest:
hostname: "{{ vcenter['host'] }}"
username: "{{ vcenter['username'] }}"
password: "{{ vcenter['password'] }}"
name: "{{ inventory_hostname }}"
validate_certs: no
delegate_to: localhost
no_log: yes
...

no_log 被禁用时,我得到了很多关于我的 VM 的有用调试信息,但是当 no_log 被禁用时,我显然无法保护我的剧本保管数据(在这种情况下,它是 vcenter['username']vcenter['password'] 值)。启用 no_log 会削弱我的剧本调试输出;

"censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result",

我想知道如何只审查部分调试输出。我知道这是可能的,因为 vcenter['password'] 在其输出中受到保护,无论我的 no_log 状态如何。当禁用 no_log 时,我在详细输出中看到了这一点;

"invocation": {
"module_args": {
"password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
"username": "administrator@vsphere.local"
}
}

你有什么想法?

最佳答案

所以我深入研究了 VMWare 模块源代码和 this是我发现的。

password=dict(type='str',
aliases=['pass', 'pwd'],
required=False,
no_log=True,
fallback=(env_fallback, ['VMWARE_PASSWORD'])),

Playbooks 似乎并未公开此功能。 VMWare 模块本身正在对 Python 中的特定属性启用 no_log。就我而言,这只是 Playbooks 隐藏的另一个功能。我真的希望抑制特定属性而不是整个模块成为标准,但这是 Ansible 2.10 的现状。

关于automation - Ansible 'no_log' 用于调试输出中的特定值,而不是整个模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65947327/

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