默认情况下,发送到Salt Minions端的命令的返回值直接返回给Salt Master。使用Salt Returners,可以将返回数据存储到其他外部数据存储用于以后的分析和归档。
Returners从Salt Minion端拉去配置数据,只配置一次,通常是在启动时间
Retuner interface允许返回数据被发送到任何可以接收数据的系统,例如Redis,MongoDB,MySQL等
在/usr/lib/python2.6/site-packages/salt/returners目录下定义了可以用的returner
编写一个Returner
一个returner就是一个包含名叫returner函数的python模块
将自定义returner放到file_roots定义的目录下的_returners目录下,默认是/srv/salt/_returners
/srv/salt/_returners/redis_return.py
import redis import json def returner(ret): ''' Return information to a redis server ''' # Get a redis connection serv = redis.Redis( host='10.10.41.20', port=6379, db='0') serv.sadd("%(id)s:jobs" % ret, ret['jid']) serv.set("%(jid)s:%(id)s" % ret, json.dumps(ret['return'])) serv.sadd('jobs', ret['jid']) serv.sadd(ret['jid'], ret['id']) ~
自定义Returner在执行以下操作时被分发到各个minion端
参考资料:
http://docs.saltstack.com/en/2014.7/ref/returners/index.html