私はそうのようなコールバックを定義しています一般的な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-脚本とansibleない影響を及ぼしているようです。 –
@ NaftuliTzviあなたは正しいです、私はこれを知らなかった。私は可能なアドホックな解決策に関する私の答えを更新しました。 –
stdout_callbackを尊重しない 'ansible'のバグは、新しいバージョンで修正され、バックポートされています。 2.3.3 https://github.com/ansible/ansible/issues/16194#issuecomment-311340681 – geekQ