saltstack学习笔记12-其他组件
saltstack还包含其他很多功能组件,其中还有两个接触比较多的两个Mine
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
-------------------------------------------------------------------------------
Peer
peer组件是saltstack中minion向master发布任务的一个组件,使用peer我们可以直接在minion上向master发布一些任务,跟我们在master上执行一样的效果
默认peer是没有配置的,配置peer也非常简单,只需要修改master文件即可
peer:
minion1:
- test.ping
peer_run:
minion1:
- manage.up
peer是控制minion执行模块的,peer_run是控制minion执行runner的
上面的例子指定minion可以向master发布test.ping和runner manage.up两个任务的权限
模块跟ID这款批量都支持正则表达式
控制minion可以发布test模块的所有功能,配置test.*即可
peer配置完成后需要重启master服务
下面我们就通过在minion上向master发布任务,首先我们来执行test.ping任务
salt-call publish.publish 'minion1' test.ping
运行下其他模块
salt-call publish.publish 'minion1' test.echo saltstack
发现test.echo模块没有任何返回,因为master没有配置test.echo的权限,下面我们来测试调用runner
salt-call publish.runner manage.up
再运行runner manage.down试试
salt-call publish.runner manage.down
发现没有任何返回,因为master没有配置runner manage.down的执行权限
页:
[1]