我已經定義了一個回調,像這樣:通用Ansible運行的回調?
#!/usr/bin/env python2.7
# -*- coding: utf-8 -*-
import sys
import pprint
from ansible.plugins.callback import CallbackBase
class JSONPrettyPrintCallback(CallbackBase):
printer = pprint.PrettyPrinter(indent=4, stream=sys.stdout)
def log(self, host, category, data):
# one json blob to rule them all
self.printer.pprint({'host': host, 'category': category, 'data': data})
在我Ansible配置,我的路徑定義:
[defaults]
callback_plugins = callback_plugins/
然而,當我跑我的模塊,我仍然看到默認Ansible輸出:
10.0.0.1 | SUCCESS => {
...
}
我跑這樣的:
ansible all -u myuser -m script -a 'path/to/script.py'
有什麼我需要做的,以正確格式化我的輸出?
似乎隻影響ansible-playbook而不是ansible。 –
@NaftuliTzviKay你是對的,我沒有意識到這一點。我已經更新了關於可能的臨時解決方案的答案。 –
不適用於stdout_callback的'ansible'中的錯誤在更新的版本中被修復並且被反向移植,例如, 2.3.3 https://github.com/ansible/ansible/issues/16194#issuecomment-311340681 – geekQ