最近在學習saltstack的reactor模塊,由於在業務上沒有有關reactor的需求。這裏只是舉個例子,方便將來參考使用。
原理:reactor分爲兩部分:tag和sls。reactor去匹配這個tag(event的tag),匹配到則執行對應的sls文件。這個需要結合event。其實這個類似於zabbix的triggers。
在配置文件目錄創建master.d/reactor.conf
reactor:
- 'salt/job/*/ret/*':
- /srv/reactor/start.sls
重啓master
創建/srv/reactor/start.sls
{% if data['id'] == '192.168.110.133' %}
cmd_run:
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/