最近在學習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/