盐编排目标
Salt Orchestrate Targeting
我正在使用 reactor 来捕获某些事件,我在 /etc/salt/master.d 中的 reactor.conf 看起来像:
reactor:
- 'health/agent/update':
- salt://health-checks/reactor.sls
在 reactor.sls - 我想从代理和 运行 某个 SLS 获取一些数据,只在某些 salt minions 上(不在 salt master 本身上)。因此,我将以下块与 tgt
一起使用,以确保它 运行 仅在那些小兵上。根据文档 at,这看起来不错。在 update_server.sls 中,我生成了一些托管文件。
{% set event_data = data.data %}
{% set target_server_name = data.data.server_name %}
'update server states':
runner.state.orchestrate:
- tgt: {{ target_server_name }}
- mods: health-checks/update_server
- pillar:
event_data: {{ event_data }}
但是托管文件仅在 salt-master 上生成,而不在任何 tgt
minions 上生成。我错过了什么? 运行 对目标小兵执行 sls 并在那里产生预期结果的正确方法是什么?
我也试过使用 salt.state 但结果出错,代码
salt.state:
- tgt: '*{{ target_server_name }}*'
和错误:
2015-12-04 06:37:24,467 [salt.utils.process][INFO ][17924] Process <class 'salt.utils.reactor.Reactor'> (17989) died with exit status None, restarting...
我想我意识到我在做的错误。
首先,"runners" 应该用于您需要在 master 而不是 remote minions 上做的事情,正如 Runner 文档 at:
中明确说明的那样
Salt runners work similarly to Salt execution modules however they execute on the Salt master itself instead of remote Salt minions.
对我有用的是:
'update server states':
local.state.sls:
- tgt: '*{{ target_server_name }}*'
- arg:
- 'health-checks/update_server'
- kwarg:
pillar:
event_data: {{ event_data }}
这将 运行 update_server.sls 文件仅在 tgt
过滤的服务器上
我正在使用 reactor 来捕获某些事件,我在 /etc/salt/master.d 中的 reactor.conf 看起来像:
reactor:
- 'health/agent/update':
- salt://health-checks/reactor.sls
在 reactor.sls - 我想从代理和 运行 某个 SLS 获取一些数据,只在某些 salt minions 上(不在 salt master 本身上)。因此,我将以下块与 tgt
一起使用,以确保它 运行 仅在那些小兵上。根据文档 at,这看起来不错。在 update_server.sls 中,我生成了一些托管文件。
{% set event_data = data.data %}
{% set target_server_name = data.data.server_name %}
'update server states':
runner.state.orchestrate:
- tgt: {{ target_server_name }}
- mods: health-checks/update_server
- pillar:
event_data: {{ event_data }}
但是托管文件仅在 salt-master 上生成,而不在任何 tgt
minions 上生成。我错过了什么? 运行 对目标小兵执行 sls 并在那里产生预期结果的正确方法是什么?
我也试过使用 salt.state 但结果出错,代码
salt.state:
- tgt: '*{{ target_server_name }}*'
和错误:
2015-12-04 06:37:24,467 [salt.utils.process][INFO ][17924] Process <class 'salt.utils.reactor.Reactor'> (17989) died with exit status None, restarting...
我想我意识到我在做的错误。
首先,"runners" 应该用于您需要在 master 而不是 remote minions 上做的事情,正如 Runner 文档 at:
中明确说明的那样Salt runners work similarly to Salt execution modules however they execute on the Salt master itself instead of remote Salt minions.
对我有用的是:
'update server states':
local.state.sls:
- tgt: '*{{ target_server_name }}*'
- arg:
- 'health-checks/update_server'
- kwarg:
pillar:
event_data: {{ event_data }}
这将 运行 update_server.sls 文件仅在 tgt