sensu.sensu_go.entity 模块 – 管理 Sensu 实体

注意

此模块是 sensu.sensu_go 集合(版本 1.14.0)的一部分。

如果您使用的是 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install sensu.sensu_go。您需要更多要求才能使用此模块,请参阅 要求 以了解详细信息。

要在 Playbook 中使用它,请指定:sensu.sensu_go.entity

注意

由于违反了 Ansible 包含要求,sensu.sensu_go 集合将从 Ansible 12 中移除。该集合存在未解决的健全性测试失败。有关更多信息,请参阅讨论主题

sensu.sensu_go 1.0.0 中的新增功能

概要

要求

执行此模块的主机需要满足以下要求。

  • python >= 2.7

参数

参数

注释

annotations

字典

限制较少的自定义元数据字段,以键/值对的形式存在。

这些字段由 Sensu 保留,但不能作为令牌或标识符访问,主要用于外部工具。

默认值: {}

auth

字典

身份验证参数。也可以使用 ENV 定义其中的每个参数。

api_key

字符串

在 sensu.sensu_go 1.3.0 中添加

身份验证时应使用的 API 密钥。如果未设置此项,将检查 SENSU_API_KEY 环境变量的值。

这将替换 auth.userauth.password 参数。

有关 API 密钥的更多信息,请参阅官方 Sensu 文档,网址为 https://docs.sensu.io/sensu-go/latest/guides/use-apikey-feature/

ca_path

路径

在 sensu.sensu_go 1.5.0 中添加

应该用于验证后端证书的 CA 捆绑包的路径。

如果未设置此参数,模块将使用 Python 正在使用的 CA 捆绑包。

也可以通过 SENSU_CA_PATH 环境变量设置此参数。

password

字符串

Sensu 用户的密码。如果未设置此项,将检查 SENSU_PASSWORD 环境变量的值。

如果设置了 auth.api_key 参数,则忽略此参数。

默认值: "P@ssw0rd!"

url

字符串

Sensu 后端 API 的位置。如果未设置此项,将检查 SENSU_URL 环境变量的值。

默认值: "https://127.0.0.1:8080"

user

字符串

用于连接 Sensu API 的用户名。如果未设置此项,将检查 SENSU_USER 环境变量的值。

如果设置了 auth.api_key 参数,则忽略此参数。

默认值: "admin"

verify

布尔值

在 sensu.sensu_go 1.5.0 中添加

控制证书验证的标志。

如果您使用的是自签名证书,可以将此参数设置为 false

仅在开发场景中使用此参数!如果在生产中使用自签名证书,请参阅 auth.ca_path 参数。

也可以通过 SENSU_VERIFY 环境变量设置此参数。

选项

  • false

  • true ←(默认)

deregister

布尔值

如果实体停止发送 keepalive 消息时应删除该实体。

选项

  • false

  • true

deregistration_handler

字符串

注销实体时要调用的处理程序的名称。

entity_class

字符串

实体类。标准类是 proxyagent,但您可以使用任何您想要的类。

如果 statepresent,则为必需项。

labels

字典

可以在 Sensu 中访问的自定义元数据字段,以键/值对的形式存在。

默认值: {}

last_seen

整数

上次看到实体的时间戳,以 Unix 纪元以来的秒数表示。

name

字符串 / 必需

Sensu 资源的名称。此名称(与适用的命名空间组合)唯一标识 Ansible 操作的资源。

如果具有选定名称的资源已存在,Ansible 模块将更新它以匹配任务中的规范。

有关有效名称和其他限制的更多详细信息,请参阅上游文档中关于 https://docs.sensu.io/sensu-go/latest/reference/name 元数据属性规范。

namespace

字符串

要操作的 RBAC 命名空间。如果未设置,将使用 SENSU_NAMESPACE 环境变量的值。

默认值: "default"

密文

列表 / 元素=字符串

要从日志消息中密文的项目列表。如果提供值,它将覆盖要密文的默认项目列表。

状态

字符串

Sensu 对象的目标状态。

选项

  • "present" ← (默认)

  • "absent"

订阅

列表 / 元素=字符串

实体的订阅列表。

系统

字典

有关实体的系统信息,例如操作系统和平台。有关更多信息,请参阅 https://docs.sensu.io/sensu-go/5.13/reference/entities/#system-attributes

user

字符串

实体使用的 Sensu RBAC 用户名。代理实体需要跨所有命名空间对事件具有 get、list、create、update 和 delete 权限。

另请参阅

另请参阅

sensu.sensu_go.entity_info

列出 Sensu 实体。

示例

- name: Create an entity
  sensu.sensu_go.entity:
    auth:
      url: https://127.0.0.1:8080
    name: entity
    entity_class: proxy
    subscriptions:
      - web
      - prod
    system:
      hostname: playbook-entity
      os: linux
      platform: ubutntu
      network:
        interfaces:
          - name: lo
            addresses:
              - 127.0.0.1/8
              - ::1/128
          - name: eth0
            mac: 52:54:00:20:1b:3c
            addresses:
              - 93.184.216.34/24
    last_seen: 1522798317
    deregister: yes
    deregistration_handler: email-handler
    redact:
      - password
      - pass
      - api_key
    user: agent

- name: Delete an entity
  sensu.sensu_go.entity:
    name: entity
    state: absent

返回值

通用返回值记录在此处,以下是此模块特有的字段

描述

对象

字典

表示 Sensu 实体的对象。

已返回: 成功

示例: {"deregister": false, "deregistration": {}, "entity_class": "agent", "last_seen": 1542667231, "metadata": {"annotations": null, "labels": null, "name": "webserver01", "namespace": "default"}, "redact": ["password", "private_key", "secret"], "sensu_agent_version": "1.0.0", "subscriptions": ["entity:webserver01"], "system": {"arch": "amd64", "cloud_provider": null, "libc_type": "glibc", "network": {"interfaces": [{"addresses": ["127.0.0.1/8", "::1/128"], "name": "lo"}, {"addresses": ["172.28.128.3/24", "fe80::a00:27ff:febc:be60/64"], "mac": "08:00:27:bc:be:60", "name": "enp0s8"}]}, "os": "linux", "platform": "centos", "platform_family": "rhel", "platform_version": "7.4.1708", "vm_role": "host", "vm_system": "kvm"}, "user": "agent"}

作者

  • Paul Arthur (@flowerysong)

  • Aljaz Kosir (@aljazkosir)

  • Miha Plesko (@miha-plesko)

  • Tadej Borovsak (@tadeboro)