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

注意

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

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

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

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

community.general 9.1.0 中的新增功能

概要

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

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

参数

参数

注释

args

列表 / 元素=字符串

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

需要提供 interval

ttltcphttp 互斥。

ca_path

字符串

用于 https 连接的 CA 证书包

host

字符串

Consul 代理的主机,默认为 localhost

默认值: "localhost"

http

字符串

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

需要提供 interval

argsttltcp 互斥。

id

字符串

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

interval

字符串

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

如果指定了参数argshttptcp中的一个,则此参数为必填。

name

字符串

服务检查所需的名称。

notes

字符串

注册检查时附加的注释。

port

整数

Consul 代理运行的端口。

默认值: 8500

scheme

字符串

Consul 代理运行的协议方案。默认为http,可以设置为https以实现安全连接。

默认值: "http"

service_id

字符串

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

state

字符串

检查是否存在。

选项

  • "present" ← (默认)

  • "absent"

tcp

字符串

在 community.general 1.3.0 中添加

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

需要提供 interval

argsttlhttp互斥。

timeout

字符串

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

token

字符串

用于授权的令牌。

ttl

字符串

可以使用 TTL 注册检查,而不是argsinterval,这意味着服务将在 TTL 到期之前向代理进行检查。如果服务未进行检查,则检查将被视为失败。如果注册检查且缺少脚本和间隔,则此参数为必填。与 interval 类似,这是一个带有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

支持:部分支持

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

在差异模式下,将返回有关更改内容(或在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"}

operation

字符串

执行的操作。

返回值:已更改

示例: "update"

作者

  • Michael Ilg (@Ilgmi)