限制主机
您可以通过配置事件数据中的元数据来限制运行 playbook 的主机。限制的主机必须是规则文件中所选主机(清单)的一个子集。
事件数据示例
{
"i": 0,
"meta": {"hosts": "localhost"}
}
“hosts” 的值可以是多个主机名称组成的逗号分隔字符串,但通常是一个单一主机。这对于将补救 playbook 限制为仅在发出监控事件的有问题主机上运行非常有用。请确保源插件已经发送了此元数据。
将主机插入元数据
某些插件可能不会发送元数据,例如 eda.builtin.webhook 插件,它将任意有效负载发送在 payload 键下。
为了适应这种情况,ansible-rulebook 提供了 insert_hosts_to_meta 内置过滤器,允许任何插件根据事件中特定键的内容来自定义 event.meta.hosts 的值。
注意
过滤器 insert_hosts_to_meta 中的 host_path 参数不需要像条件或操作参数那样添加 event. 前缀。
示例
sources:
- eda.builtin.webhook:
port: 4444
filters:
- eda.builtin.insert_hosts_to_meta:
host_path: "payload.alert.instances"