我尝试使用Python API从以下站点设置Ansible。
https://serversforhackers.com/c/running-ansible-2-programmatically
手头的问题如下: 如何在ansible中以编程方式更改详细程度。以下代码似乎无法调整输出的详细程度。
# Set global verbosity
self.display = Display()
self.display.verbosity = self.options.verbosity
# Executor appears to have it's own
# verbosity object/setting as well
playbook_executor.verbosity = self.options.verbosity
到目前为止,除了冗长设置外,它已经非常成功(ansible 2.3.0)。由于代码在网站上,我不会在这里发布我的代码,因为它完全相同。我试图检查ansible的源代码,但似乎很难查看如何使用这些选项。 (我查看了display.py,playbook_executor.py,play_context.py等...)
注意:对于使用相同代码的用户,请将skip_tags和标记设置为''它可以在版本中使用> 2.2.0。
答案 0 :(得分:1)
使用Ansible API 2时,如何应用详细程度是一个非常脏的黑客:
import __main__ as main
from ansible.utils.display import Display
display = Display(verbosity=4)
setattr(main, 'display', display)
确认在Ansible v2.4
工作。
此答案基于https://www.programcreek.com/python/example/95763/ansible.utils.display.Display和https://stackoverflow.com/a/47639200/4533625。