community.general.datadog_downtime 模块 – 管理 Datadog 停机时间

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

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

要安装它,请使用: ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求

要在 playbook 中使用它,请指定: community.general.datadog_downtime

community.general 2.0.0 中的新增功能

概要

要求

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

  • datadog-api-client

  • Python 3.6+

参数

参数

注释

api_host

字符串

Datadog API 的 URL。

此值也可以使用 DATADOG_HOST 环境变量设置。

默认值: "https://api.datadoghq.com"

api_key

字符串 / 必需

您的 Datadog API 密钥。

app_key

字符串 / 必需

您的 Datadog 应用密钥。

downtime_message

字符串

要包含在此停机时间通知中的消息。

可以使用与事件相同的“@用户名”表示法将电子邮件通知发送给特定用户。

end

整数

结束停机时间的 POSIX 时间戳。如果未提供,则停机时间将一直有效,直到您取消它。

id

整数

停机时间的标识符。

如果为空,则创建一个新的停机时间,否则根据 state 更新或删除它。

为了保持您的 playbook 幂等,您应该将标识符保存在文件中并在查找中读取它。

monitor_id

整数

要静默的监控器的 ID。如果未提供,则停机时间适用于所有监控器。

monitor_tags

列表 / 元素=字符串

停机时间适用的监控器标签列表。

生成的停机时间适用于与所有提供的监控器标签匹配的监控器。

rrule

字符串

定义重复事件的 RRULE 标准。

例如,要每个月的第一天都有一个重复事件,请选择一种 rrule 类型并将 FREQ 设置为 MONTHLY 并将 BYMONTHDAY 设置为 1

支持 iCalendar 规范中最常见的 rrule 选项。

不支持在 RRULE 中指定持续时间的属性(例如 DTSTARTDTENDDURATION)。

scope

列表 / 元素=字符串

停机时间适用的范围列表。

生成的停机时间适用于与所有提供的范围匹配的来源。

start

整数

开始停机时间的 POSIX 时间戳。如果未提供,则停机时间在其创建时开始。

state

字符串

停机时间的指定状态。

选择

  • "present" ← (默认)

  • "absent"

timezone

字符串

停机时间的时区。

属性

属性

支持

描述

check_mode

支持:不支持

可以在 check_mode 中运行并返回更改状态预测,而无需修改目标。

diff_mode

支持:不支持

在差异模式下,将返回有关已更改内容(或可能需要在 check_mode 中更改)的详细信息。

示例

- name: Create a downtime
  register: downtime_var
  community.general.datadog_downtime:
    state: present
    monitor_tags:
      - "foo:bar"
    downtime_message: "Downtime for foo:bar"
    scope: "test"
    api_key: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
    app_key: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
    # Lookup the id in the file and ignore errors if the file doesn't exits, so downtime gets created
    id: "{{ lookup('file', inventory_hostname ~ '_downtime_id.txt', errors='ignore') }}"
- name: Save downtime id to file for later updates and idempotence
  delegate_to: localhost
  copy:
    content: "{{ downtime.downtime.id }}"
    dest: "{{ inventory_hostname ~ '_downtime_id.txt' }}"

返回值

常见的返回值已在 此处 记录,以下是此模块特有的字段

描述

downtime

字典

API 返回的停机时间。

返回:始终

示例: {"active": true, "canceled": null, "creator_id": 1445416, "disabled": false, "downtime_type": 2, "end": null, "id": 1055751000, "message": "Downtime for foo:bar", "monitor_id": null, "monitor_tags": ["foo:bar"], "parent_id": null, "recurrence": null, "scope": ["test"], "start": 1607015009, "timezone": "UTC", "updater_id": null}

作者

  • Datadog (@Datadog)