我已经创建了一个部署堆栈的角色。我也在担任角色的问题(如果堆栈失败,请回滚到某些任务)。然而,虽然一切顺利,但在控制台上回滚任务显示为skipped
个任务(在非详细模式下也是如此)。
TASK: [deploy-stack | Deleting_Validation_Template] ***************************
skipping: [10.17.10.150]
TASK: [deploy-stack | shell echo 'Template Validation has Failed'] ************
skipping: [10.17.10.150]
TASK: [deploy-stack | Deploying_the_Stack..] **********************************
changed: [10.17.10.150]
1)是否可以从控制台隐藏skipped
个任务?
2)我注意到,如果我没有以超级详细模式运行playbook(ansible-playbook stack.yml -vvvv),则ansible日志文件不会填充详细信息(基本上我们在控制台中看到的,正在进入ansible日志文件/var/log/ansible.log
)。是否可以定义日志级别以将更多信息输入到日志文件中,同时以非详细模式运行playbook(ansible-playbook stack.yml)?
答案 0 :(得分:2)
1)如上面的评论中所述,您可以关闭已跳过任务的状态,但不能关闭它们的名称 - 参数display_skipped_hosts
如果你想进一步自定义输出,你需要一些代码并让你拥有Ansible的 stdout 插件:
v2_runner_on_*
方法中的模板化任务名称不可用,因此如果您不想打印跳过的任务的名称,则需要将名称捕获到v2_playbook_on_task_start
内的全局字典中,但是不要在此方法中打印出来,然后打印或不在v2_runner_on_*
方法中打印它们(请参阅profile_tasks.py中使用self.stats
和task._uuid
作为参考) 2)没有简单的解决方案,因为默认记录器与用于将信息打印到控制台的方法相同。
但是如果您拥有自定义标准输出插件,则可以打印提供log_only=True
到self._display.display
方法的详细信息(例如,参见default.py回调中的v2_playbook_on_stats
)。
或者,您可以创建另一个仅用于记录的回调插件。