Eu desenvolvi um plugin de callback para esconder as senhas das saídas padrão, ele analisa o dicionário de saída para a chave que contém senha , para cada um deles, substitui o valor por ********.
Crie um arquivo chamado protect_data.py
na pasta ./ plugins / callback add adicione este código:
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)
No arquivo ansible.cfg :
- descomente a linha com
stdout_callback
e defina esse nome de plug-in como um valor ( stdout_callback=protect_data
)
- descomente a linha com
callback_plugins
e defina o valor ./plugins/callback
Output is only modified for this plugin, if you use another plugin to display output (logentries
, ...), you have to do the same with it