Salt Reactor
Auf Events reagieren
Der Salt Reactor ist ein Prozess, welcher auf dem Master läuft und auf Events der Minions reagiert. Sobald der Event-Listener ein Event registriert, für das eine Reaktion definiert wurde, wird diese auf einem Minion ausgeführt. Der Reactor kann auf Standard-Events, wie »Minion gestartet« oder frei definierte Events reagieren.
Reactor aktivieren
Der Reactor wird über die Konfiguration des Masters aktiviert. Verwenden Sie dazu etwa die Datei /etc/salt/master.d/reactor.conf
.
Ein simples Beispiel
reactor:
- 'salt/minion/*/start': # EVENT -> Match tag "salt/minion/*/start"
- /srv/reactor/minion-start.sls # REACTION -> Things to do when a minion starts
- 'dummy/foo/*':
- /srv/reactor/dummy.sls
{% set list = tag.split('/') %}
dummy:
local.cmd.run:
- name: gaga
- tgt: 'some-minion'
- arg:
- 'echo "{{ data['id'] }}: {{ list[2] }} . {{ tag }} {{ data | json() }}">/tmp/reactor.txt'
root@minion1: salt-call event.send 'dummy/foo/hamster'
Mit dem Kommando salt-run state.event pretty=True
beobachten Sie live, welche Events an den Reactor gesendet werden.
Salt-Keys aufräumen
reactor:
- 'salt/cloud/*/destroying':
- '/srv/reactor/salt_cloud_destroy_keys.sls'
{%- set tag_split = tag.split('/') %}
{%- set minion_id = tag_split[2] %}
salt_cloud_destroy_key_{{ minion_id }}:
wheel.key.delete:
- match: {{ minion_id }}
State nach VM Deployment ausrollen
reactor:
# Machine created
- 'salt/cloud/*/created':
- '/srv/reactor/startup_highstate.sls'
# Machine destroyed
- 'salt/cloud/*/destroying':
- '/srv/reactor/salt_cloud_destroy_keys.sls'
reactor_highstate:
cmd.state.apply:
- tgt: {{ data['name'] }}
- args:
- mods: init.vminit
Last updated