限制主机

您可以通过配置事件数据中的元数据来限制运行 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"