community.general.consul_agent_check 模块 – 在 Consul 集群中添加、修改和删除检查

注意

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

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

要安装它,请使用:ansible-galaxy collection install community.general

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

community.general 9.1.0 中的新增功能

概要

  • 允许通过代理在 consul 集群中添加、修改和删除检查。有关使用和配置检查的更多详细信息,请参阅 https://developer.hashicorp.com/consul/api-docs/agent/check

  • 目前,没有完整的方法来检索已注册检查的脚本、间隔或 TTL 元数据。如果没有这些元数据,就无法判断 Ansible 提供的数据是否代表对检查的更改。因此,这不会尝试确定更改,并且始终会报告发生了更改。计划提供一个 API 方法来提供此元数据,以便在该阶段添加更改管理。

参数

参数

注释

args

list / elements=string

指定要运行以更新检查状态的命令参数。

需要提供 interval

ttltcphttp 互斥。

ca_path

string

用于 https 连接的 CA 包

host

string

Consul 代理的主机,默认为 localhost

默认值: "localhost"

http

string

可以使用 HTTP 端点注册检查。这意味着 Consul 将检查 HTTP 端点是否返回成功的 HTTP 状态。

需要提供 interval

argsttltcp 互斥。

id

string

指定节点上此检查的唯一 ID。这默认为 name 参数,但可能需要提供一个 ID 以确保唯一性。此值将在响应中返回为“CheckId”。

interval

string

服务检查的运行间隔。这是一个带有 sm 后缀的数字,表示单位为秒或分钟,例如 15s1m。如果未提供后缀,则默认使用 s,例如 10 将被视为 10s

如果指定了参数 argshttptcp 之一,则为必填项。

名称

string

服务检查的必填名称。

备注

string

注册检查时附加的备注。

端口

整数

consul 代理运行所在的端口。

默认值: 8500

方案

string

consul 代理运行所在的协议方案。默认为 http,可以设置为 https 以进行安全连接。

默认值: "http"

service_id

string

服务的 ID,每个节点必须唯一。 如果 state=absent,则默认为提供的服务名称。

状态

string

检查应该存在还是不存在。

选项

  • "present" ←(默认)

  • "absent"

tcp

string

在 community.general 1.3.0 中添加

可以使用 TCP 端口注册检查。这意味着 consul 将检查到该端口的连接尝试是否成功(即,该端口当前是否接受连接)。格式为 host:port,例如 localhost:80

需要提供 interval

argsttlhttp 互斥。

超时

string

自定义 HTTP 检查超时。consul 默认值为 10 秒。与间隔类似,这是一个带有 sm 后缀的数字,表示单位为秒或分钟,例如 15s1m。如果未提供后缀,则默认使用 s,例如 10 将被视为 10s

令牌

string

用于授权的令牌。

ttl

string

可以使用 TTL 而不是 argsinterval 注册检查,这意味着服务将在 TTL 过期之前与代理进行检查。如果未检查,则认为检查失败。如果注册检查且缺少脚本和间隔,则为必填项。与间隔类似,这是一个带有 sm 后缀的数字,表示单位为秒或分钟,例如 15s1m。如果未提供后缀,则默认使用 s,例如 10 将被视为 10s

argstcphttp 互斥。

validate_certs

布尔值

是否验证 consul 代理的 TLS 证书。

选项

  • false

  • true ←(默认)

属性

属性

支持

描述

action_group

操作组: community.general.consul

module_defaults 中使用 group/community.general.consul 来为此模块设置默认值。

check_mode

支持: 完整

结果是模块选项中定义的对象,而不是 consul API 的对象结构。为了更好地了解对象结构的外观,请查看 https://developer.hashicorp.com/consul/api-docs/agent/check#list-checks

可以在 check_mode 中运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持: 部分

在检查模式下,diff 将显示模块选项中定义的对象,而不是 consul API 的对象结构。

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

示例

- name: Register tcp check for service 'nginx'
  community.general.consul_agent_check:
    name: nginx_tcp_check
    service_id: nginx
    interval: 60s
    tcp: localhost:80
    notes: "Nginx Check"

- name: Register http check for service 'nginx'
  community.general.consul_agent_check:
    name: nginx_http_check
    service_id: nginx
    interval: 60s
    http: https://127.0.0.1:80/status
    notes: "Nginx Check"

- name: Remove check for service 'nginx'
  community.general.consul_agent_check:
    state: absent
    id: nginx_http_check
    service_id: "{{ nginx_service.ID }}"

返回值

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

描述

check

字典

consul HTTP API 返回的检查。

返回: 始终

示例: {"CheckID": "nginx_check", "Interval": "30s", "Notes": "Nginx Check", "ServiceID": "nginx", "Type": "http"}

操作

string

执行的操作。

返回: 已更改

示例: "update"

作者

  • Michael Ilg (@Ilgmi)