如何使用回调捕获每个ansible playbook任务的stdout / stdmsg?

时间:2016-10-06 09:34:29

标签: ansible ansible-playbook ansible-2.x

有没有办法在完成每个ansible playbook任务(而不是整个playbook)时使用回调捕获stdout,stderr?

预定义的“playbook_on_task_start”不符合实际要求,因此需要有一个规定来为整个剧本执行中的每个任务完成获取统计数据。

.dropdown-menu {
    float:left;
}

.left-submenu {
    float: none;
}

.left-submenu > .dropdown-menu {
    border-radius: 6px 0px 6px 6px;
    left: auto;
    margin-left: 10px;
    right: 98%;
}

1 个答案:

答案 0 :(得分:0)

这里的方法是在任务启动时创建任务哈希,并在任务结束时用数据填充哈希值 完成playbook后,您可以分析哈希值并打印出您需要的内容。

请参阅documentation以了解全局stats哈希并通过uuid存储任务。
您需要添加v2_runner_on_...个处理程序才能从结果中获取stdout并将其放入self.stats[result._task._uuid].stdout。 然后在v2_playbook_on_stats中计算您的统计数据。