amazon.aws.route53 模块 – 在 Amazon Route 53 DNS 服务中添加或删除条目
注意
此模块是 amazon.aws 集合 (版本 9.0.0) 的一部分。
如果您使用的是 ansible
包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install amazon.aws
。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求。
要在剧本中使用它,请指定:amazon.aws.route53
。
amazon.aws 5.0.0 中的新增功能
摘要
在 Amazon Route 53 服务中创建和删除 DNS 记录。
此模块最初是在 1.0.0 版本中添加到
community.aws
的。
要求
执行此模块的主机需要以下要求。
python >= 3.6
boto3 >= 1.28.0
botocore >= 1.31.0
参数
参数 |
注释 |
---|---|
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 和 profile 选项是互斥的。 为了与 AWS botocore SDK 保持一致,在 5.1.0 版本中添加了 aws_access_key_id 别名。 ec2_access_key 别名已弃用,将在 2024-12-01 后的某个版本中移除。
|
|
是否评估别名目标的运行状况。对于 Elastic Load Balancers 的别名很有用。 选项
|
|
托管区域标识符。 |
|
验证 SSL 证书时使用的 CA 证书包的位置。 还可以使用 |
|
用于修改 botocore 配置的字典。 可以在 AWS 文档中找到参数 https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config。 |
|
使用 还可以使用 选项
|
|
连接到的 URL,而不是默认的 AWS 端点。虽然这可以用于连接到其他与 AWS 兼容的服务,但 amazon.aws 和 community.aws 集合仅针对 AWS 进行了测试。 还可以按优先级递减的顺序使用 ec2_url 和 s3_url 别名已弃用,将在 2024-12-01 后的某个版本中移除。
|
|
允许控制 Amazon Route 53 如何根据查询的地理位置来源来响应 DNS 查询。 无法创建指定相同地理位置的两个地理位置资源记录集。 无法创建与地理位置资源记录集的 Name 和 Type 元素具有相同值的非地理位置资源记录集。 |
|
大陆的两字母代码。 同时指定 |
|
国家的两位字母代码。 Amazon Route 53 使用 ISO 3166-1 alpha-2 标准中指定的两位字母国家代码。 |
|
美国州的两位字母代码。 要指定 |
|
与该记录关联的运行状况检查 |
|
要修改的 DNS 区域的托管区域 ID。 如果未提供参数 |
|
仅需为加权、基于延迟和故障转移资源记录集指定。用于区分具有相同 DNS 名称和类型的多个资源记录集的标识符。 |
|
如果创建时值不匹配,是否应覆盖现有记录。 选项
|
|
如果设置为 默认情况下使用公共区域。 选项
|
|
用于身份验证的命名 AWS 配置文件。 有关命名配置文件的更多信息,请参见 AWS 文档 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html。 也可以使用 profile 选项与 aws_access_key、aws_secret_key 和 security_token 选项互斥。 |
|
要创建或删除的完整 DNS 记录。 |
|
如果 Route 53 仍在处理之前的请求,则此模块将等待并在这么多秒后再次尝试。如果您有很多域名,则默认的 默认值: |
|
AWS 密钥访问密钥。 有关访问令牌的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys。 也可以按优先级递减顺序使用 secret_key 和 profile 选项互斥。 aws_secret_access_key 别名在 5.1.0 版本中添加,以与 AWS botocore SDK 保持一致。 ec2_secret_key 别名已弃用,并将在 2024-12-01 之后的一个版本中删除。
|
|
与临时凭证一起使用的 AWS STS 会话令牌。 有关访问令牌的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys。 也可以按优先级递减顺序使用 security_token 和 profile 选项互斥。 别名 aws_session_token 和 session_token 在 3.2.0 版本中添加,参数在 6.0.0 版本中从 security_token 重命名为 session_token。 security_token、aws_security_token 和 access_token 别名已弃用,并将在 2024-12-01 之后的一个版本中删除。
|
|
指定资源记录的状态。 选项
|
|
要创建的 DNS 记录类型。 选项
|
|
设置为 强烈建议不要设置 validate_certs=false,作为替代方案,请考虑改用 aws_ca_bundle。 选项
|
|
创建 DNS 记录时的新值。对于非别名记录,允许使用 YAML 列表或多个以逗号分隔的值。 |
|
与 这允许您拥有多个私有托管区域,所有这些区域都具有相同的名称,并附加到不同的 VPC。 |
|
等待更改复制到所有 Amazon Route 53 DNS 服务器。 选项
|
|
等待更改复制的时间(秒)。 默认值: |
|
要修改的 DNS 区域。 如果未提供参数 |
注释
注意
警告:对于模块,环境变量和配置文件是从 Ansible 的“主机”上下文而不是“控制器”上下文读取的。因此,可能需要将文件显式复制到“主机”。对于查找和连接插件,环境变量和配置文件是从 Ansible 的“控制器”上下文而不是“主机”上下文读取的。
Ansible 使用的 AWS SDK (boto3) 也可能从 Ansible 的“主机”上下文(通常为
~/.aws/credentials
)中的配置文件读取凭据和其他设置的默认值,例如区域。有关更多信息,请参见 https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html。
示例
- name: Add new.foo.com as an A record with 3 IPs and wait until the changes have been replicated
amazon.aws.route53:
state: present
zone: foo.com
record: new.foo.com
type: A
ttl: 7200
value: 1.1.1.1,2.2.2.2,3.3.3.3
wait: true
- name: Update new.foo.com as an A record with a list of 3 IPs and wait until the changes have been replicated
amazon.aws.route53:
state: present
zone: foo.com
record: new.foo.com
type: A
ttl: 7200
value:
- 1.1.1.1
- 2.2.2.2
- 3.3.3.3
wait: true
- name: Retrieve the details for new.foo.com
amazon.aws.route53:
state: get
zone: foo.com
record: new.foo.com
type: A
register: rec
- name: Delete new.foo.com A record using the results from the get command
amazon.aws.route53:
state: absent
zone: foo.com
record: "{{ rec.set.record }}"
ttl: "{{ rec.set.ttl }}"
type: "{{ rec.set.type }}"
value: "{{ rec.set.value }}"
# Add an AAAA record. Note that because there are colons in the value
# that the IPv6 address must be quoted. Also shows using the old form command=create.
- name: Add an AAAA record
amazon.aws.route53:
command: create
zone: foo.com
record: localhost.foo.com
type: AAAA
ttl: 7200
value: "::1"
# For more information on SRV records see:
# https://en.wikipedia.org/wiki/SRV_record
- name: Add a SRV record with multiple fields for a service on port 22222
amazon.aws.route53:
state: present
zone: foo.com
record: "_example-service._tcp.foo.com"
type: SRV
value: "0 0 22222 host1.foo.com,0 0 22222 host2.foo.com"
# Note that TXT and SPF records must be surrounded
# by quotes when sent to Route 53:
- name: Add a TXT record.
amazon.aws.route53:
state: present
zone: foo.com
record: localhost.foo.com
type: TXT
ttl: 7200
value: '"bar"'
- name: Add an alias record that points to an Amazon ELB
amazon.aws.route53:
state: present
zone: foo.com
record: elb.foo.com
type: A
value: "{{ elb_dns_name }}"
alias: true
alias_hosted_zone_id: "{{ elb_zone_id }}"
- name: Retrieve the details for elb.foo.com
amazon.aws.route53:
state: get
zone: foo.com
record: elb.foo.com
type: A
register: rec
- name: Delete an alias record using the results from the get command
amazon.aws.route53:
state: absent
zone: foo.com
record: "{{ rec.set.record }}"
ttl: "{{ rec.set.ttl }}"
type: "{{ rec.set.type }}"
value: "{{ rec.set.value }}"
alias: true
alias_hosted_zone_id: "{{ rec.set.alias_hosted_zone_id }}"
- name: Add an alias record that points to an Amazon ELB and evaluates it health
amazon.aws.route53:
state: present
zone: foo.com
record: elb.foo.com
type: A
value: "{{ elb_dns_name }}"
alias: true
alias_hosted_zone_id: "{{ elb_zone_id }}"
alias_evaluate_target_health: true
- name: Add an AAAA record with Hosted Zone ID
amazon.aws.route53:
state: present
zone: foo.com
hosted_zone_id: Z2AABBCCDDEEFF
record: localhost.foo.com
type: AAAA
ttl: 7200
value: "::1"
- name: Use a routing policy to distribute traffic
amazon.aws.route53:
state: present
zone: foo.com
record: www.foo.com
type: CNAME
value: host1.foo.com
ttl: 30
# Routing policy
identifier: "host1@www"
weight: 100
health_check: "d994b780-3150-49fd-9205-356abdd42e75"
- name: Add a CAA record (RFC 6844)
amazon.aws.route53:
state: present
zone: example.com
record: example.com
type: CAA
value:
- 0 issue "ca.example.net"
- 0 issuewild ";"
- 0 iodef "mailto:[email protected]"
- name: Create a record with geo_location - country_code
amazon.aws.route53:
state: present
zone: '{{ zone_one }}'
record: 'geo-test.{{ zone_one }}'
identifier: "geohost@www"
type: A
value: 1.1.1.1
ttl: 30
geo_location:
country_code: US
- name: Create a record with geo_location - subdivision code
amazon.aws.route53:
state: present
zone: '{{ zone_one }}'
record: 'geo-test.{{ zone_one }}'
identifier: "geohost@www"
type: A
value: 1.1.1.1
ttl: 30
geo_location:
country_code: US
subdivision_code: TX
返回值
公共返回值已记录在 此处,以下是此模块特有的字段
键 |
描述 |
---|---|
与区域关联的名称服务器。 返回:当 state 为“get”时 示例: |
|
资源记录的具体信息。 返回:当 state 为“get”时 |
|
这是否是别名。 返回:始终 示例: |
|
这是否是主资源记录集还是辅助资源记录集。 返回:始终 示例: |
|
基于地理位置,Route53 根据此位置响应 DNS 查询。 返回:已配置时 示例: |
|
与该记录关联的健康检查。 返回:始终 |
|
一个标识符,用于区分具有相同 DNS 名称和类型的多个资源记录集。 返回:始终 |
|
记录集的域名。 返回:始终 示例: |
|
记录集的域名。 返回:始终 示例: |
|
应为此关联的区域,用于基于延迟的路由。 返回:始终 示例: |
|
有关要操作的资源记录的信息。 返回:始终 示例: |
|
资源记录缓存 TTL。 返回:始终 示例: |
|
资源记录集类型。 返回:始终 示例: |
|
记录值。 返回:始终 示例: |
|
记录值。 返回:始终 示例: |
|
记录的权重。 返回:始终 示例: |
|
此记录集所属的区域。 返回:始终 示例: |
|
应用更改的等待 ID。当 返回:已更改时 |