最近在学习saltstack的reactor模块,因为在业务上没有有关reactor的需求。这里只是举个例子,方便未来参考使用。
react
原理:reactor分为两部分:tag和sls。reactor去匹配这个tag(event的tag),匹配到则执行对应的sls文件。这个须要结合event。其实这个相似于zabbix的triggers。ide
在配置文件目录建立master.d/reactor.conf学习
reactor:spa
- 'salt/job/*/ret/*':blog
- /srv/reactor/start.sls事件
重启masterget
建立/srv/reactor/start.slscmd
{% if data['id'] == '192.168.110.133' %}it
cmd_run:event
cmd.cmd.run:(这里写的是salt可执行模块,modules里的模块)
- tgt: '192.168.110.132'
- arg:
- /bin/touch /tmp/demo
{% endif %}
触发事件:
salt '192.168.110.133' test.ping
没意外的话,会在192.168.110.132上建立/tmp/demo文件
关于event的信息请参考event文章。
参考:
http://docs.saltstack.com/en/latest/topics/reactor/
http://vbyron.com/blog/infrastructure-management-saltstack-part-3-reactor-events/