我想使用环境变量或全局配置项控制ansible playbooks的详细程度。这是因为ansible是以多种方式从多个地方调用的,我想从同一个shell会话中更改所有进一步执行的日志记录级别。
我观察到,如果我配置ANSIBLE_DEBUG=true
ansible将在调试模式下运行,但调试更多是非常冗长的,我只是寻找类似于-vvv
选项的东西(DEBUG比偶数更详细{ {1}}选项)
我试图在https://github.com/ansible/ansible/blob/devel/lib/ansible/constants.py内寻找一个变量,但我无法找到符合条件的变量。
答案 0 :(得分:4)
我认为有两种方法可以做到这一点:
alias ansible-playbook="echo 'This is -vv alias'; ansible-playbook -vv"
这样,当您输入ansible-playbook -vv
时,您的shell会调用ansible-playbook
(并打印有关别名的友好提醒)。
将此代码作为verbosity_env.py
文件放入callback_plugins
目录:
from ansible.plugins.callback import CallbackBase
import os
try:
from __main__ import display
except ImportError:
display = None
class CallbackModule(CallbackBase):
def v2_playbook_on_start(self, playbook):
v = os.environ.get('ANSIBLE_VERBOSITY')
if v and display:
display.display('Verbosity is set to {} with environment variable.'.format(v), color='blue')
display.verbosity = int(v)
这不是生产质量代码,而是完成工作。这将检查ANSIBLE_VERBOSITY
环境变量并设置显示详细程度及其值。
答案 1 :(得分:1)
不知道为什么我错过了答案,因为很久以前ansible完全支持ANSIBLE_VERBOSITY=[0|1|2|3|4]
。
答案 2 :(得分:0)
您可以在本地文件夹中创建/编辑ansible.cfg
文件,然后在[defaults]
部分中添加:
[defaults]
verbosity=4
或者,您可以在/etc/ansible/ansible.cfg
文件中添加相同的选项。