0
機密データを不可能な出力に隠す、無理なコールバックプラグインを作りたいと思います。それをhereを行う方法についての提案があります:不可能なコールバックプラグインに状態を持たせる方法
from ansible.plugins.callback.default import CallbackModule as CallbackModule_default
import os, collections
class CallbackModule(CallbackModule_default):
CALLBACK_VERSION = 2.0
CALLBACK_TYPE = 'stdout'
CALLBACK_NAME = 'protect_data'
def __init__(self, display=None):
super(CallbackModule, self).__init__(display)
def hide_password(self, result):
ret = {}
for key, value in result.iteritems():
if isinstance(value, collections.Mapping):
ret[key] = self.hide_password(value)
else:
if "password" in key:
ret[key] = "********"
else:
ret[key] = value
return ret
def _dump_results(self, result, indent=None, sort_keys=True, keep_invocation=False):
return super(CallbackModule, self)._dump_results(self.hide_password(result), indent, sort_keys, keep_invocation)
今、この例では、「パスワード」を隠します。私は今、プレイブックの実行時に設定可能な隠された言葉を作りたいと思っています。
プレイリストの実行時にプラグインに何らかの状態(非表示にする単語のリスト)を指定して変更することはできますか?