我可以像 Ansible 那样从 Ansible 打印一个警告来处理内部警告,例如:
[WARNING]: Ignoring invalid attribute: xx
目标用途是警告,不是错误,因此它们不应该结束 playbook 执行,但它们应该清晰可见(标准 Ansible 紫色)。
示例用法:
最佳答案
这是一个简单的过滤器插件,它会发出警告消息:
from ansible.utils.display import Display
class FilterModule(object):
def filters(self): return {'warn_me': self.warn_filter}
def warn_filter(self, message, **kwargs):
Display().warning(message)
return message
将上述内容放入文件中,例如
[playbook_dir]/filter_plugins/warn_me.py
.调用此过滤器的人为示例剧本可能如下所示:
---
- name: Demonstrate warn_me filter plugin
gather_facts: no
hosts: all
tasks:
- meta: end_play
when: ('file XYZ cannot be processed' | warn_me())
delegate_to: localhost
run_once: yes
运行这个剧本可能会产生这个输出:
$ ansible-playbook test_warnme.yml -l forwards
__________________________________________
< PLAY [Demonstrate warn_me filter plugin] >
------------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
[WARNING]: file XYZ cannot be processed
____________
< PLAY RECAP >
------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
关于Ansible:从剧本打印警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48033923/