Mine
本章节参考《SaltStack技术入门与实践》,感谢该书作者: 刘继伟、沈灿、赵舜东
Mine是SaltStack收集Minion数据存储到Master的一个组件,它的功能与Grains有些类似,Mine可以指定任何Minion模块去采集数据。但是master只能存储minion收集上来的最近一段的数据,mine的主要应用场景是配合前端负载均衡动态获取mine汇报信息,来动态生成配置文件。例如官网通过mine.get指定业务设备的网卡地址动态生成haproxy.cfg文件。
mine还支持get docker容器的地址,可简单实现动态添加业务。
Mine配置目前支持两种方式,第一种是通过在minion配置文件中定义,另一种是通过模块的方式去下发mine采集任务。关于mine模块的更多用法可以使用sys.doc mine命令查看。下面我们通过模块的方式下发一个采集docker0网卡地址的任务:
salt ‘Minion‘ mine.send network.ip_addrs interface=docker0
salt ‘Minion‘ mine.get ‘Minion‘ network.ip_addrs
通过模块的方式我们很容易下发mine收集任务,mine.get的用法也很简单,后面跟着模块名和函数即可。mine还支持通过minion文件定义的方式:
mine_functions:
network.ip_addrs:
interface:eth0
mine_interval是定义mine采集周期,mine_functions是引用模块进收集,关于network模块用法可以使用sys.doc查看。修改minion配置文件后重启minion服务,最后我们通过mine.get方式去读取mine信息:
salt ‘minion1‘ mine.get ‘minion1‘ network.ip_addrs