amazon.aws.route53_health_check 模块 – 在 Amazon Route 53 DNS 服务中管理运行状况检查

注意

此模块是 amazon.aws 集合 (版本 9.0.0) 的一部分。

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

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

要在 playbook 中使用它,请指定:amazon.aws.route53_health_check

amazon.aws 5.0.0 中的新增功能

概要

  • 创建和删除 Amazon Route 53 服务中的 DNS 运行状况检查。

  • 在更新现有运行状况检查时,只考虑 portresource_pathstring_matchrequest_interval

  • 此模块最初添加到 community.aws 的 1.0.0 版本中。

要求

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

  • python >= 3.6

  • boto3 >= 1.28.0

  • botocore >= 1.31.0

参数

参数

注释

access_key

别名:aws_access_key_id、aws_access_key、ec2_access_key

字符串

AWS 访问密钥 ID。

有关访问令牌的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys

也可以使用 AWS_ACCESS_KEY_IDAWS_ACCESS_KEYEC2_ACCESS_KEY 环境变量,优先级依次递减。

aws_access_keyprofile 选项是互斥的。

为与 AWS botocore SDK 保持一致,在 5.1.0 版本中添加了 aws_access_key_id 别名。

ec2_access_key 别名已弃用,将在 2024-12-01 之后的一个版本中删除。

EC2_ACCESS_KEY 环境变量的支持已弃用,将在 2024-12-01 之后的一个版本中删除。

aws_ca_bundle

路径

用于验证 SSL 证书的 CA 证书包的位置。

也可以使用 AWS_CA_BUNDLE 环境变量。

aws_config

字典

用于修改 botocore 配置的字典。

参数可在 AWS 文档中找到 https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config

child_health_checks

列表 / 元素=字符串

amazon.aws 6.3.0 中添加

用于计算运行状况检查的子运行状况检查。

此参数接受子运行状况检查 ID。

debug_botocore_endpoint_logs

布尔值

使用 botocore.endpoint 日志记录器来解析任务期间进行的唯一(而不是总数)"resource:action" API 调用,并将集合输出到任务结果中的 resource_actions 密钥。使用 aws_resource_action 回调将输出到 playbook 期间进行的总数列表。

也可以使用 ANSIBLE_DEBUG_BOTOCORE_LOGS 环境变量。

选项

  • false ← (默认)

  • true

disabled

布尔值

community.aws 2.1.0 中添加

阻止 Route 53 执行运行状况检查。

有关确切含义的更多详细信息,请参阅 AWS 文档。https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-creating-values.html

创建新的运行状况检查时默认为 true

选项

  • false

  • true

endpoint_url

别名:ec2_url、aws_endpoint_url、s3_url

字符串

连接到默认 AWS 端点以外的端点的 URL。虽然这可以用于连接到其他与 AWS 兼容的服务,但 amazon.aws 和 community.aws 集合仅针对 AWS 进行了测试。

也可以使用 AWS_URLEC2_URL 环境变量,优先级依次递减。

ec2_urls3_url 别名已弃用,将在 2024-12-01 之后的一个版本中删除。

对环境变量EC2_URL的支持已弃用,将在2024-12-01之后的一个版本中移除。

failure_threshold

整数

端点必须连续通过或失败的健康检查次数,才能使 Amazon Route 53 将端点的当前状态从不健康更改为健康,反之亦然。

如果创建时未指定,则默认为3

选项

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

fqdn

字符串

要检查的端点的域名。必须提供此参数或ip_address。同时提供两者时,将使用fqdn作为 HTTP 请求的Host:标头。

health_check_id

别名:id

字符串

在 community.aws 4.1.0 中添加

要更新或删除的健康检查的 ID。

如果提供,则可以基于 ID 作为唯一标识符来更新或删除健康检查。

health_check_name

别名:name

字符串

在 community.aws 4.1.0 中添加

健康检查的名称。

use_unique_names一起使用,将health_check_name用作唯一标识符。

health_threshold

整数

amazon.aws 6.3.0 中添加

计算出的健康检查被认为是健康的最小健康子健康检查数。

默认值: 1

ip_address

字符串

要检查的端点的 IP 地址。必须提供此参数或fqdn

IP 地址必须是可公开路由的。

measure_latency

布尔值

在 amazon.aws 5.4.0 中添加

启用/禁用延迟图表以监控多个 Amazon Web Services 区域中的健康检查程序与您的端点之间的延迟。

measure_latency的值是不可变的,创建健康检查后无法修改。请参阅 https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/monitoring-health-check-latency.html

选项

  • false

  • true

port

整数

您希望 Amazon Route 53 在执行健康检查时使用的端点上的端口。TCP 检查需要此端口。

profile

别名:aws_profile

字符串

要用于身份验证的命名 AWS 配置文件。

有关命名配置文件的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html

也可以使用AWS_PROFILE环境变量。

profile选项与aws_access_keyaws_secret_keysecurity_token选项互斥。

purge_tags

布尔值

如果purge_tags=true且设置了tags,则将从资源中清除现有标签,以完全匹配tags参数定义的内容。

如果未设置tags参数,则即使purge_tags=True,也不会修改标签。

aws:开头的标签键由 Amazon 保留,无法修改。因此,在purge_tags参数中将忽略它们。有关更多信息,请参阅 Amazon 文档 https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html#tag-conventions

选项

  • false

  • true ← (默认)

region

别名:aws_region, ec2_region

字符串

要使用的 AWS 区域。

对于 IAM、Route53 和 CloudFront 等全球服务,将忽略region

也可以使用AWS_REGIONEC2_REGION环境变量。

有关更多信息,请参阅 Amazon AWS 文档 http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region

别名ec2_region已弃用,将在2024-12-01之后的一个版本中移除。

对环境变量EC2_REGION的支持已弃用,将在2024-12-01之后的一个版本中移除。

request_interval

整数

Amazon Route 53 从您的端点收到响应的时间与它发送下一个健康检查请求的时间之间的时间间隔(秒)。

选项

  • 10

  • 30 ← (默认)

resource_path

字符串

您希望 Amazon Route 53 在执行健康检查时请求的路径。路径可以是任何值,当端点健康时,您的端点将返回 HTTP 状态代码 2xx 或 3xx,例如文件 /docs/route53-health-check.html。

type='TCP'互斥。

路径必须以 / 开头。

最多 255 个字符。

secret_key

别名:aws_secret_access_key, aws_secret_key, ec2_secret_key

字符串

AWS 密钥访问密钥。

有关访问令牌的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys

也可以按优先级递减顺序使用AWS_SECRET_ACCESS_KEYAWS_SECRET_KEYEC2_SECRET_KEY环境变量。

secret_keyprofile选项互斥。

为了与 AWS botocore SDK 保持一致,在 5.1.0 版本中添加了aws_secret_access_key别名。

别名ec2_secret_key已弃用,将在2024-12-01之后的一个版本中移除。

对环境变量EC2_SECRET_KEY的支持已弃用,将在2024-12-01之后的一个版本中移除。

session_token

别名:aws_session_token, security_token, aws_security_token, access_token

字符串

与临时凭证一起使用的 AWS STS 会话令牌。

有关访问令牌的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys

也可以按优先级递减顺序使用AWS_SESSION_TOKENAWS_SECURITY_TOKENEC2_SECURITY_TOKEN环境变量。

security_tokenprofile选项互斥。

在 3.2.0 版本中添加了别名aws_session_tokensession_token,在 6.0.0 版本中将参数名称从security_token重命名为session_token

别名security_tokenaws_security_tokenaccess_token已弃用,将在2024-12-01之后的一个版本中移除。

对环境变量EC2_SECRET_KEYAWS_SECURITY_TOKEN的支持已弃用,将在2024-12-01之后的一个版本中移除。

state

字符串

指定要执行的操作。

选项

  • "present" ← (默认)

  • "absent"

string_match

字符串

如果检查类型是 HTTP_STR_MATCH 或 HTTPS_STR_MATCH,则为 Amazon Route 53 要在指定资源的响应正文中搜索的字符串。如果该字符串出现在响应正文的前 5120 个字节中,则 Amazon Route 53 会认为该资源是健康的。

tags

别名:resource_tags

字典

表示要应用于资源的标签的字典。

如果未设置tags参数,则不会修改标签。

type

字符串

您要创建的健康检查的类型,指示 Amazon Route 53 如何确定端点是否健康。

创建健康检查后,类型将无法更改。

在 6.3.0 版本中添加了CALCULATED选项。

选项

  • "HTTP"

  • "HTTPS"

  • "HTTP_STR_MATCH"

  • "HTTPS_STR_MATCH"

  • "TCP"

  • "CALCULATED"

use_unique_names

布尔值

在 community.aws 4.1.0 中添加

health_check_name一起使用,将health_check_name用作唯一标识符。

选项

  • false

  • true

validate_certs

布尔值

设置为false时,将不会验证与 AWS API 通信的 SSL 证书。

强烈建议不要设置validate_certs=false,建议改为设置aws_ca_bundle

选项

  • false

  • true ← (默认)

注释

注意

  • tagspurge_tags 的支持已在 2.1.0 版本中添加。

  • 注意:对于模块,环境变量和配置文件是从 Ansible 的“主机”上下文而不是“控制器”上下文读取的。因此,可能需要将文件显式复制到“主机”。对于查找和连接插件,环境变量和配置文件是从 Ansible 的“控制器”上下文而不是“主机”上下文读取的。

  • Ansible 使用的 AWS SDK (boto3) 也可能从 Ansible “主机”上下文中的配置文件(通常为~/.aws/credentials)读取凭据和其他设置(例如区域)的默认值。更多信息,请参见https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html

示例

- name: Create a health check for host1.example.com and use it in record
  amazon.aws.route53_health_check:
    state: present
    fqdn: host1.example.com
    type: HTTP_STR_MATCH
    resource_path: /
    string_match: "Hello"
    request_interval: 10
    failure_threshold: 2
  register: my_health_check

- amazon.aws.route53:
    action: create
    zone: "example.com"
    type: CNAME
    record: "www.example.com"
    value: host1.example.com
    ttl: 30
    # Routing policy
    identifier: "host1@www"
    weight: 100
    health_check: "{{ my_health_check.health_check.id }}"

- name: create a simple health check with health_check_name as unique identifier
  amazon.aws.route53_health_check:
    state: present
    health_check_name: ansible
    fqdn: ansible.com
    port: 443
    type: HTTPS
    use_unique_names: true

- name: create a TCP health check with latency graphs enabled
  amazon.aws.route53_health_check:
    state: present
    health_check_name: ansible
    fqdn: ansible.com
    port: 443
    type: HTTPS
    use_unique_names: true
    measure_latency: true

- name: Delete health check
  amazon.aws.route53_health_check:
    state: absent
    fqdn: host1.example.com

- name: Update Health check by ID - update ip_address
  amazon.aws.route53_health_check:
    id: 12345678-abcd-abcd-abcd-0fxxxxxxxxxx
    ip_address: 1.2.3.4

- name: Update Health check by ID - update port
  amazon.aws.route53_health_check:
    id: 12345678-abcd-abcd-abcd-0fxxxxxxxxxx
    ip_address: 8080

- name: Delete Health check by ID
  amazon.aws.route53_health_check:
    state: absent
    id: 12345678-abcd-abcd-abcd-0fxxxxxxxxxx

返回值

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

描述

health_check

字典

有关运行状况检查的信息。

返回值:成功

action

字符串

模块执行的操作。

返回值:当进行或将要进行更改时。

示例:"updated"

health_check_config

字典

有关运行状况检查的详细信息。

可能包含来自 Route 53 运行状况检查功能的其他值,这些功能尚未被此模块支持。

返回值:当运行状况检查存在时。

disabled

布尔值

运行状况检查是否已被禁用。

返回值:当运行状况检查存在时。

示例:false

enable_sni

布尔值

这允许端点使用适用的 SSL/TLS 证书响应 HTTPS 运行状况检查请求。

返回值:当运行状况检查存在时。

示例:false

failure_threshold

整数

端点必须连续通过或失败的健康检查次数,才能使 Amazon Route 53 将端点的当前状态从不健康更改为健康,反之亦然。

返回值:当运行状况检查存在时。

示例:3

fully_qualified_domain_name

字符串

为运行状况检查配置的要测试的 FQDN。

返回值:当运行状况检查存在且配置了 FQDN 时。

示例:"updated"

inverted

布尔值

指定您是否希望 Amazon Route 53 反转运行状况检查的状态。

返回值:当运行状况检查存在时。

示例:false

ip_address

字符串

要查询的端点的 IPv4 或 IPv6 IP 地址。

返回值:当运行状况检查存在且配置了特定 IP 地址时。

示例:""

measure_latency

布尔值

启用/禁用延迟图表以监控多个 Amazon Web Services 区域中的健康检查程序与您的端点之间的延迟。

返回值:当运行状况检查存在时。

示例:false

port

字符串

运行状况检查将查询的端点上的端口。

返回值:当运行状况检查存在时。

示例:"updated"

request_interval

整数

运行状况检查查询之间的秒数。

返回值:当运行状况检查存在时。

示例:30

resource_path

字符串

执行基于 HTTP/HTTPS 的运行状况检查时要查询的 URI 路径。

返回值:当运行状况检查存在且已配置资源路径时。

示例:"/healthz"

search_string

字符串

响应中必须存在的一个字符串,才能使运行状况检查被认为成功。

返回值:当运行状况检查存在且已配置搜索字符串时。

示例:"ALIVE"

type

字符串

运行状况检查的类型。

返回值:当运行状况检查存在时。

示例:"HTTPS_STR_MATCH"

health_check_version

整数

运行状况检查的版本号。

返回值:当运行状况检查存在时。

示例:14

id

字符串

AWS 分配给运行状况检查的唯一 ID。

返回值:当运行状况检查存在时。

示例:"50ec8a13-9623-4c66-9834-dd8c5aedc9ba"

tags

字典

表示运行状况检查上的标签的字典。

返回值:当运行状况检查存在时。

示例:{"my_key": "my_value"}

作者

  • zimbatm (@zimbatm)