amazon.aws.rds_cluster 模块 – rds_cluster 模块
注意
此模块是 amazon.aws 集合(版本 9.0.0)的一部分。
如果您正在使用 ansible
包,您可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install amazon.aws
。您需要进一步的要求才能使用此模块,有关详细信息,请参阅要求。
要在 Playbook 中使用它,请指定:amazon.aws.rds_cluster
。
amazon.aws 5.0.0 中的新增功能
概要
创建、修改和删除 RDS 集群。
此模块最初在 3.2.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 之后的版本中删除。 对 |
|
要分配给 Multi-AZ DB 集群中每个 DB 实例的存储量,以吉比字节 (GiB) 为单位。 此设置是创建 Multi-AZ DB 集群所必需的。 |
|
一个值,用于指定是否应尽快应用使用 选项
|
|
可在其中创建 DB 集群中实例的 EC2 可用区列表。可在创建集群或从 S3 或快照还原时使用。 |
|
用于验证 SSL 证书的 CA 捆绑包的位置。 也可以使用 |
|
用于修改 botocore 配置的字典。 可以在 AWS 文档 https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config 中找到参数。 |
|
以 ISO 8601 格式回溯 DB 集群的时间戳,例如“2017-07-08T18:00Z”。 |
|
目标回溯窗口,以秒为单位。要禁用回溯,请将此值设置为 如果指定,则此值必须设置为 |
|
自动备份保留的天数(必须在 默认值: |
|
要与 DB 集群关联的字符集。 |
|
指示是否将所有标签从 DB 集群复制到 DB 集群的快照。默认是不复制它们。 选项
|
|
如果要从模板(现有集群、S3 存储桶或快照)创建,则使用哪个源。 选项
|
|
数据库的名称。如果未提供名称,则 Amazon RDS 将不会创建数据库。 |
|
DB 集群(小写)标识符。该标识符必须包含 1 到 63 个字母、数字或连字符,第一个字符必须是字母,并且不得以连字符结尾或包含连续的连字符。 |
|
多可用区数据库集群中每个数据库实例的计算和内存容量,例如 并非所有数据库实例类都适用于所有 Amazon Web Services 区域或所有数据库引擎。 有关数据库实例类及其引擎可用性的完整列表,请访问 https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html。 此设置是创建 Multi-AZ DB 集群所必需的。 |
|
要与此数据库集群关联的数据库集群参数组的名称。如果在创建集群时省略此参数,则将使用指定数据库引擎和版本的默认数据库集群参数组。 |
|
如果不使用默认值,则与此数据库集群关联的数据库子网组。 |
|
使用 也可以使用 选项
|
|
一个值,指示是否为数据库集群启用了删除保护。启用删除保护后,无法删除数据库。默认情况下,删除保护处于禁用状态。 选项
|
|
要在其中创建数据库集群的 Active Directory 目录 ID。 |
|
指定在调用目录服务 API 时要使用的 IAM 角色的名称。 |
|
需要启用以便导出到 CloudWatch Logs 的日志类型列表。 Engine aurora-mysql 支持 Engine aurora-postgresql 支持 |
|
一个值,指示是否启用此数据库集群将写入操作转发到 Aurora 全局数据库的主集群。默认情况下,不允许在 Aurora 全局数据库中的辅助集群上的 Aurora 数据库集群上进行写入操作。 此值只能在属于 Aurora 全局数据库成员的 Aurora 数据库集群上设置。 选项
|
|
一个值,指示是否为 Aurora Serverless 数据库集群启用 HTTP 端点。默认情况下,HTTP 端点处于禁用状态。 选项
|
|
启用 AWS Identity and Access Management (IAM) 账户到数据库账户的映射。如果在创建集群时省略此选项,则 Amazon RDS 会将其设置为 选项
|
|
要连接到的 URL,而不是默认的 AWS 端点。虽然这可以用于连接到其他与 AWS 兼容的服务,但 amazon.aws 和 community.aws 集合仅针对 AWS 进行了测试。 也可以使用 ec2_url 和 s3_url 别名已弃用,将在 2024-12-01 之后的版本中删除。 对 |
|
用于此数据库集群的数据库引擎的名称。这是创建集群所必需的。 可能不支持 engine 和 engine_mode 的组合。 有关详细信息,请参阅 AWS 文档:Amazon RDS 文档。 当 当 engine=postgres 时,还必须指定 在 amazon.aws 5.5.0 中添加了对 选项
|
|
数据库集群的数据库引擎模式。可能不支持 有关详细信息,请参阅 AWS 文档:Amazon RDS 文档。 选项
|
|
要使用的数据库引擎的版本号。 对于 Aurora MySQL,这可能是 Aurora PostgreSQL 示例, |
|
当 |
|
一个布尔值,指示在启用二进制日志记录时是否应强制数据库集群回溯。否则,在启用二进制日志记录时会发生错误。 选项
|
|
设置为 由于无法比较密码来确定是否需要更新,因此默认情况下将其设置为 选项
|
|
成为新的全局数据库集群中主集群的 Aurora 集群的全局集群 ID。 |
|
最初为多可用区数据库集群中的每个数据库实例分配的预置 IOPS(每秒输入/输出操作)量。 此设置是创建多可用区数据库集群所必需的 必须是数据库集群存储量的 0.5 到 50 倍之间的倍数。 |
|
AWS KMS 密钥标识符(ARN,除非您在拥有 KMS 密钥的同一账户中创建集群,在这种情况下可以使用 KMS 密钥别名)。 如果 如果 |
|
主数据库用户的 8-41 个字符的密码。 密码可以包含除 要修改密码,请使用 |
|
数据库集群主用户的名称。必须是 1-16 个字母或数字,并且以字母开头。 |
|
重命名数据库集群时,数据库集群的新数据库集群(小写)标识符。 该标识符必须包含 1 到 63 个字母、数字或连字符,并且第一个字符必须是字母,且不能以连字符结尾或包含连续的连字符。 使用 |
|
要与数据库集群关联的选项组。 |
|
每日时间范围(UTC 时间),至少 30 分钟,如果使用 |
|
每周时间范围(UTC 时间),至少 30 分钟,在此期间可以进行系统维护。 该选项的格式必须为“ddd:hh24:mi-ddd:hh24:mi”,其中 ddd 是 Mon、Tue、Wed、Thu、Fri、Sat、Sun 之一。 |
|
用于身份验证的已命名的 AWS 配置文件。 有关已命名配置文件的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html。 也可以使用 profile 选项与 aws_access_key、aws_secret_key 和 security_token 选项互斥。 |
|
设置为 选项
|
|
是否禁用未在 选项
|
|
如果 如果未设置 以 选项
|
|
要使用的 AWS 区域。 对于 IAM、Route53 和 CloudFront 等全局服务,将忽略 region。 也可以使用 有关更多信息,请参阅 Amazon AWS 文档 http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region。
对 |
|
如果设置为 当 选项
|
|
如果此数据库集群是作为只读副本创建的,则源数据库实例或数据库集群的 Amazon 资源名称 (ARN)。 |
|
将数据库集群还原到的 UTC 日期和时间。 格式必须为“2015-03-07T23:45:00Z”。 如果在还原集群时未提供此参数,则必须提供 |
|
要执行的还原类型。如果未提供,则 Amazon RDS 使用 full-copy。 选项
|
|
要与 Aurora 数据库集群关联的 IAM 角色的 Amazon 资源名称 (ARN),例如“arn:aws:iam::123456789012:role/AuroraAccessRole” |
|
包含用于创建 Amazon Aurora 数据库集群的数据的 Amazon S3 存储桶的名称。 |
|
AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称 (ARN),该角色授权 Amazon RDS 代表您访问 Amazon S3 存储桶。 |
|
包含用于创建 Amazon Aurora 数据库集群的数据的所有文件名的前缀。 如果未指定 SourceS3Prefix 值,则将使用 Amazon S3 存储桶中的所有文件创建 Amazon Aurora 数据库集群。 |
|
AWS secret access key。 有关访问令牌的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys。 也可以使用 secret_key 和 profile 选项互斥。 为了与 AWS botocore SDK 保持一致,在 5.1.0 版本中添加了 aws_secret_access_key 别名。 ec2_secret_key 别名已弃用,将在 2024-12-01 之后的版本中删除。 对 |
|
包含 Aurora Serverless v2 数据库集群的扩展配置。 |
|
Aurora Serverless v2 集群中数据库实例的最大 Aurora 容量单位 (ACU) 数。 ACU 值可以指定为半步增量,例如 最大可能值为 |
|
Aurora Serverless v2 集群中数据库实例的最小 Aurora 容量单位 (ACU) 数。 ACU 值可以指定为半步增量,例如 最小可能值为 |
|
用于临时凭证的 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 之后的版本中移除。 对 |
|
要从中还原的数据库快照或数据库集群快照的标识符。 可以使用名称或 ARN 来指定数据库集群快照。但是,只能使用 ARN 来指定数据库快照。 |
|
要从中还原的源数据库集群的标识符。 |
|
用于创建存储在 Amazon S3 存储桶中的文件的数据库引擎的标识符。 选项
|
|
创建备份文件的数据库版本。 |
|
包含数据库集群源的区域 ID。 |
|
快照是否应存在。
对 选项
|
|
数据库集群是否已加密。 选项
|
|
指定与数据库集群关联的存储类型。 此设置是创建 Multi-AZ DB 集群所必需的。 对于多可用区数据库集群, 对于 Aurora 数据库集群, 对于 mysql 和 postgres 数据库集群, 对 选项
|
|
表示要应用于资源的标签的字典。 如果未设置 |
|
设置为 强烈建议不要设置 validate_certs=false,作为替代方法,请考虑设置 aws_ca_bundle。 选项
|
|
要与数据库集群关联的 EC2 VPC 安全组的列表。 |
|
是否等待集群可用或被删除。 选项
|
注释
注意
注意: 对于模块,环境变量和配置文件是从 Ansible “主机” 上下文而不是 “控制器” 上下文读取的。因此,可能需要将文件显式复制到 “主机”。对于查找和连接插件,环境变量和配置文件是从 Ansible “控制器” 上下文而不是 “主机” 上下文读取的。
Ansible 使用的 AWS SDK (boto3) 也可能会从 Ansible “主机” 上下文中的配置文件(通常是
~/.aws/credentials
)读取凭证和其他设置(例如区域)的默认值。有关详细信息,请参阅 https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html。
示例
# Note: These examples do not set authentication details, see the AWS Guide for details.
- name: Create minimal Aurora cluster in default VPC and default subnet group
amazon.aws.rds_cluster:
cluster_id: "{{ cluster_id }}"
engine: "aurora"
password: "{{ password }}"
username: "{{ username }}"
- name: Add a new security group without purge
amazon.aws.rds_cluster:
id: "{{ cluster_id }}"
state: present
vpc_security_group_ids:
- sg-0be17ba10c9286b0b
purge_security_groups: false
- name: Modify password
amazon.aws.rds_cluster:
id: "{{ cluster_id }}"
state: present
password: "{{ new_password }}"
force_update_password: true
apply_immediately: true
- name: Rename the cluster
amazon.aws.rds_cluster:
engine: aurora
password: "{{ password }}"
username: "{{ username }}"
cluster_id: "cluster-{{ resource_prefix }}"
new_cluster_id: "cluster-{{ resource_prefix }}-renamed"
apply_immediately: true
- name: Delete Aurora cluster without creating a final snapshot
amazon.aws.rds_cluster:
engine: aurora
password: "{{ password }}"
username: "{{ username }}"
cluster_id: "{{ cluster_id }}"
skip_final_snapshot: true
tags:
Name: "cluster-{{ resource_prefix }}"
Created_By: "Ansible_rds_cluster_integration_test"
state: absent
- name: Restore cluster from source snapshot
amazon.aws.rds_cluster:
engine: aurora
password: "{{ password }}"
username: "{{ username }}"
cluster_id: "cluster-{{ resource_prefix }}-restored"
snapshot_identifier: "cluster-{{ resource_prefix }}-snapshot"
- name: Create an Aurora PostgreSQL cluster and attach an intance
amazon.aws.rds_cluster:
state: present
engine: aurora-postgresql
engine_mode: provisioned
cluster_id: '{{ cluster_id }}'
username: '{{ username }}'
password: '{{ password }}'
- name: Attach a new instance to the cluster
amazon.aws.rds_instance:
id: '{{ instance_id }}'
cluster_id: '{{ cluster_id }}'
engine: aurora-postgresql
state: present
db_instance_class: 'db.t3.medium'
- name: Remove a cluster from global DB (do not delete)
amazon.aws.rds_cluster:
db_cluster_identifier: '{{ cluster_id }}'
global_cluster_identifier: '{{ global_cluster_id }}'
remove_from_global_db: true
- name: Remove a cluster from global DB and Delete without creating a final snapshot
amazon.aws.rds_cluster:
engine: aurora
password: "{{ password }}"
username: "{{ username }}"
cluster_id: "{{ cluster_id }}"
skip_final_snapshot: true
remove_from_global_db: true
wait: true
state: absent
- name: Update cluster port and WAIT for remove secondary DB cluster from global DB to complete
amazon.aws.rds_cluster:
db_cluster_identifier: "{{ secondary_cluster_name }}"
global_cluster_identifier: "{{ global_cluster_name }}"
remove_from_global_db: true
state: present
port: 3389
region: "{{ secondary_cluster_region }}"
- name: Update cluster port and DO NOT WAIT for remove secondary DB cluster from global DB to complete
amazon.aws.rds_cluster:
db_cluster_identifier: "{{ secondary_cluster_name }}"
global_cluster_identifier: "{{ global_cluster_name }}"
remove_from_global_db: true
state: present
port: 3389
region: "{{ secondary_cluster_region }}"
wait: false
返回值
通用返回值记录在此处,以下是此模块特有的字段
键 |
描述 |
---|---|
数据库活动流的状态。 返回: 总是 示例: |
|
分配的存储大小(以 GB 为单位)。由于 aurora 存储大小不是固定的,因此对于 aurora 数据库引擎,此值始终为 1。 返回: 总是 示例: |
|
与数据库集群关联的 AWS Identity and Access Management (IAM) 角色的字典列表。每个字典都包含 role_arn 和角色的状态。 返回: 总是 示例: |
|
指定在维护窗口期间是否自动将次要引擎升级应用于数据库集群。 返回: 总是 示例: |
|
可以在其中创建数据库集群中的实例的可用区列表。 返回: 总是 示例: |
|
保留自动数据库快照的天数。 返回: 总是 示例: |
|
如果 RDS 集群已更改。 返回: 总是 示例: |
|
创建数据库集群时的时间(UTC)。 返回: 总是 示例: |
|
指定是否将标签从数据库集群复制到数据库集群的快照。 返回: 总是 示例: |
|
指定数据库集群是否为不同 Amazon Web Services 账户拥有的数据库集群的克隆。 返回: 总是 示例: |
|
数据库集群的 Amazon 资源名称 (ARN)。 返回: 总是 示例: |
|
用户提供的数据库集群标识符(小写)。 返回: 总是 示例: |
|
包含有关集群中实例信息的字典列表。每个字典都包含 db_instance_identifier、is_cluster_writer (bool)、db_cluster_parameter_group_status 和 promotion_tier (int)。 返回: 总是 示例: |
|
与数据库集群关联的参数组。 返回: 总是 示例: |
|
数据库集群的 AWS 区域唯一且不可变的标识符。 返回: 总是 示例: |
|
与数据库集群关联的子网组的名称。 返回: 总是 示例: |
|
指示是否为数据库集群启用了删除保护。启用删除保护后,无法删除数据库。 返回: 总是 示例: |
|
与数据库集群关联的 Active Directory 域成员资格记录。 返回: 总是 示例: |
|
可以使用时间点还原将数据库还原到的最早时间。 返回: 总是 示例: |
|
数据库集群主实例的连接终端节点。 返回: 总是 示例: |
|
数据库集群的数据库引擎。 返回: 总是 示例: |
|
数据库集群的数据库引擎模式。 返回: 总是 示例: |
|
数据库引擎版本。 返回: 总是 示例: |
|
当您创建托管区域时,Amazon Route 53 分配的 ID。 返回: 总是 示例: |
|
一个值,指示是否为 Aurora Serverless 数据库集群启用了 HTTP 终端节点。 返回: 总是 示例: |
|
是否可以将 IAM 账户映射到数据库账户。 返回: 总是 示例: |
|
可以使用时间点还原将数据库还原到的最新时间。 返回: 总是 示例: |
|
数据库集群的主用户名。 返回: 总是 示例: |
|
数据库集群是否在多个可用区中拥有实例。 返回: 总是 示例: |
|
数据库引擎正在监听的端口。 返回: 总是 示例: |
|
系统维护可以发生的 UTC 每周时间范围。 返回: 总是 示例: |
|
系统维护可以发生的 UTC 每周时间范围。 返回: 总是 示例: |
|
与数据库集群关联的只读副本 ID 字符串列表。 返回: 总是 示例: |
|
数据库集群的读取器终端节点。 返回: 总是 示例: |
|
Aurora Serverless v2 数据库集群的扩展配置。 返回: 配置时 示例: |
|
数据库集群的状态。 返回: 总是 示例: |
|
数据库集群是否已存储加密。 返回: 总是 示例: |
|
由键值对组成的标签列表。 返回: 总是 示例: |
|
键值对的字典。 返回: 总是 示例: |
|
数据库集群的安全组及其状态的列表。 返回: 总是 |
|
安全组的状态。 返回: 总是 示例: |
|
集群的安全组。 返回: 总是 示例: |