amazon.aws.rds_instance 模块 – 管理 RDS 实例
注意
此模块是 amazon.aws 集合 (版本 9.0.0) 的一部分。
如果您正在使用 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install amazon.aws
。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。
要在 playbook 中使用它,请指定:amazon.aws.rds_instance
。
amazon.aws 5.0.0 中的新增功能
概要
创建、修改和删除 RDS 实例。
此模块最初在版本 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 之后的一个版本中移除。
|
|
为数据库实例分配的存储量(以 GiB 为单位)。 |
|
是否允许主版本升级。 选项
|
|
一个值,指定是否应尽快应用使用 选项
|
|
是否在维护窗口期间自动将次要版本升级应用于数据库实例。 选项
|
|
数据库实例可以在其中创建的 EC2 可用区列表。可在创建实例时或从 S3 或快照还原时使用。与 |
|
验证 SSL 证书时使用的 CA 证书包的位置。 也可以使用 |
|
用于修改 botocore 配置的字典。 可在 AWS 文档中找到参数 https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config。 |
|
保留自动备份的天数。 设置为 可在创建新实例时、从 S3 还原时或修改实例时使用。 |
|
数据库实例的 CA 证书标识符。 |
|
要与数据库实例关联的字符集。 |
|
是否将数据库实例的所有标签复制到实例的快照。在最初创建数据库实例时,如果未指定,RDS API 默认将其设置为 选项
|
|
如果从模板(现有实例、S3 存储桶或快照)还原,则使用哪个源。 选项
|
|
要向其添加 Aurora 数据库实例的 DB 集群(小写)标识符。标识符必须包含 1 到 63 个字母、数字或连字符,第一个字符必须是字母,并且不能以连字符结尾或包含连续的连字符。 |
|
数据库实例的计算和内存容量,例如 |
|
数据库实例(小写)标识符。标识符必须包含 1 到 63 个字母、数字或连字符,第一个字符必须是字母,不能以连字符结尾,也不能包含连续的连字符。 |
|
数据库名称。如果未提供名称,Amazon RDS 将不会创建数据库。 |
|
要与此数据库实例关联的 DB 参数组的名称。创建数据库实例时,如果省略此参数,则使用指定引擎的默认 DBParameterGroup。 |
|
(EC2-Classic 平台)要与此数据库实例关联的 DB 安全组列表。 |
|
使用 |
|
要用于数据库实例的 DB 子网组名称。 |
|
使用 也可以使用 选项
|
|
指示数据库实例是否启用了删除保护的值。启用删除保护后,无法删除数据库。默认情况下,删除保护处于禁用状态。 选项
|
|
要从中还原实例的 Active Directory 域。 |
|
对目录服务进行 API 调用时要使用的 IAM 角色的名称。 |
|
需要启用以导出到 CloudWatch Logs 的日志类型列表。 |
|
启用 AWS Identity and Access Management (IAM) 帐户与数据库帐户的映射。如果创建实例时省略此选项,Amazon RDS 会将其设置为 选项
|
|
是否为 DB 实例启用性能洞察。 选项
|
|
连接到默认 AWS 端点以外的 URL。虽然这可用于连接到其他与 AWS 兼容的服务,但 amazon.aws 和 community.aws 集合仅针对 AWS 进行了测试。 也可以使用 ec2_url和s3_url别名已弃用,将在 2024-12-01 之后的发行版中删除。
|
|
要用于此数据库实例的数据库引擎的名称。创建实例需要此参数。 选项
|
|
要使用的数据库引擎的版本号。对于 Aurora MySQL,可能是 |
|
|
|
设置为 选项
|
|
设置为 选项
|
|
要与数据库实例关联的 Amazon Web Services Identity and Access Management (IAM) 角色列表。 |
|
与 IAM 角色关联的功能的名称。 |
|
要与数据库实例关联的 IAM 角色的 ARN。 |
|
预配的 IOPS(每秒 I/O 操作)值。仅在 |
|
加密的数据库实例的 AWS KMS 密钥标识符的 ARN。如果您使用与拥有用于加密新数据库实例的 KMS 加密密钥的相同 AWS 帐户创建数据库实例,则可以使用 KMS 密钥别名代替 KM 加密密钥的 ARN。 如果 |
|
数据库实例的许可证模型。 几个选项是 license-included、bring-your-own-license 和 general-public-license。 此选项也可以省略,默认为可接受的值。 |
|
主数据库用户的 8-41 个字符的密码。密码可以包含任何可打印的 ASCII 字符,但 |
|
数据库实例的主用户的名称。必须是 1-16 个字母或数字,并且必须以字母开头。 |
|
Amazon RDS 可以自动扩展数据库实例存储的上限。 |
|
为数据库实例收集增强型监控指标的间隔(以秒为单位)。要禁用收集指标,请指定 |
|
允许 RDS 将增强型监控指标发送到 Amazon CloudWatch Logs 的 IAM 角色的 ARN。 |
|
指定是使用多租户配置还是单租户配置(默认)。 此参数仅适用于 RDS for Oracle 容器数据库 (CDB) 引擎。 您在请求中指定的数据库引擎必须支持多租户配置。 如果在创建数据库实例期间启用了多租户配置,则以后无法修改。 选项
|
|
重命名数据库实例时数据库实例的新数据库实例(小写)标识符。标识符必须包含 1 到 63 个字母、数字或连字符,第一个字符必须是字母,不能以连字符结尾,也不能包含连续的连字符。使用 |
|
要与数据库实例关联的选项组。 |
|
用于加密性能洞察数据的 AWS KMS 密钥标识符(ARN、名称或别名)。 |
|
保留 Performance Insights 数据的天数。有效值为 7 或 731。 |
|
实例接受连接的端口号。 |
|
每日时间范围(UTC),至少 30 分钟,如果使用 |
|
每周时间范围(UTC),至少 30 分钟,在此期间可以进行系统维护。此选项必须采用“ddd:hh24:mi-ddd:hh24:mi”的格式,其中 ddd 是 Mon、Tue、Wed、Thu、Fri、Sat、Sun 之一。 |
|
一个 Name-Value 对的字典,用于指示数据库实例类别的 CPU 核心数和每个核心的线程数。名称为 threadsPerCore 和 coreCount。将此选项设置为空字典以使用默认的处理器特性。 |
|
CPU 核心数 |
|
每个核心的线程数 |
|
用于身份验证的命名 AWS 配置文件。 有关命名配置文件的更多信息,请参阅 AWS 文档 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html。 也可以使用 profile 选项与 aws_access_key、aws_secret_key 和 security_token 选项互斥。 |
|
一个整数,指定在现有主实例故障后 Aurora 副本提升为主实例的顺序。 |
|
指定数据库实例的可访问性选项。值为 选项
|
|
设置为 将 选项
|
|
设置为 选项
|
|
设置为 可以应用于 选项
|
|
如果 如果未设置 以 选项
|
|
设置为 选项
|
|
要使用的 AWS 区域。 对于 IAM、Route53 和 CloudFront 等全局服务,将忽略 region。 也可以使用 有关更多信息,请参阅 Amazon AWS 文档 http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region。 已弃用 已弃用对 |
|
如果使用 creation_source=instance,这表示从源实例还原的 UTC 日期和时间。例如,“2009-09-07T23:45:00Z”。 或者可以设置 只能提供 |
|
包含用于创建 Amazon DB 实例的数据的 Amazon S3 存储桶的名称。 |
|
AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称 (ARN),该角色授权 Amazon RDS 代表您访问 Amazon S3 存储桶。 |
|
包含用于创建 Amazon DB 实例的数据的所有文件名的前缀。如果未指定 SourceS3Prefix 值,则使用 Amazon S3 存储桶中的所有文件创建 Amazon DB 实例。 |
|
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 botocore SDK 保持一致,在 5.1.0 版本中添加了 aws_secret_access_key 别名。 已弃用 已弃用对 |
|
用于临时凭证的 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 选项互斥。 在 3.2.0 版本中添加了 aws_session_token 和 session_token 别名,在 6.0.0 版本中将参数名称从 security_token 重命名为 session_token。 已弃用 security_token、aws_security_token 和 access_token 别名,并将在此后 2024-12-01 的版本中删除。 对环境变量 |
|
创建只读副本或使用 |
|
用于备份到 Amazon S3 存储桶中存储的文件的数据库引擎标识符。 选项
|
|
备份文件创建时使用的数据库版本。 |
|
创建副本的 DB 实例所在的区域。 |
|
RDS 实例所需的状态。
选项
|
|
DB 实例是否已加密。 选项
|
|
当 当分配的存储空间小于 400 GB 时,存储吞吐量始终为 125 mb/s。 当分配的存储空间大于或等于 400 GB 时,吞吐量从 500 mb/s 开始。 |
|
表示要应用于资源的标签的字典。 如果未设置 |
|
密钥存储中要与实例关联的 ARN,用于透明数据加密。Oracle 或 SQL Server DB 实例支持此功能,并可与 |
|
密钥存储中给定 ARN 的密码,用于访问设备。 |
|
DB 实例的时区。 |
|
设置为 强烈建议不要设置validate_certs=false,作为替代方案,请考虑设置aws_ca_bundle。 选项
|
|
要与 DB 实例关联的 EC2 VPC 安全组列表。 |
|
是否等待实例可用、停止或删除。稍后可能会添加wait_timeout选项。在每次调用 API 创建/修改/删除实例之后,将使用等待器,延迟 60 秒,最多 30 次,直到实例达到预期状态(可用/停止/删除)。任务总时间也可能受到 AWSRetry 的影响,AWSRetry 有助于稳定实例处于无效状态的情况(例如,如果尝试在实例正在重新启动的过程中停止它)。如果将其设置为 选项
|
备注
注意
注意:对于模块,环境变量和配置文件是从 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 instance in default VPC and default subnet group
amazon.aws.rds_instance:
engine: aurora
db_instance_identifier: ansible-test-aurora-db-instance
instance_type: db.t3.small
password: "{{ password }}"
username: "{{ username }}"
cluster_id: ansible-test-cluster # This cluster must exist - see rds_cluster to manage it
- name: Create a DB instance using the default AWS KMS encryption key
amazon.aws.rds_instance:
id: test-encrypted-db
state: present
engine: mariadb
storage_encrypted: true
db_instance_class: db.t3.medium
username: "{{ username }}"
password: "{{ password }}"
allocated_storage: "{{ allocated_storage }}"
- name: Remove the DB instance without a final snapshot
amazon.aws.rds_instance:
id: "{{ instance_id }}"
state: absent
skip_final_snapshot: true
- name: Remove the DB instance with a final snapshot
amazon.aws.rds_instance:
id: "{{ instance_id }}"
state: absent
final_snapshot_identifier: "{{ snapshot_id }}"
- name: Add a new security group without purge
amazon.aws.rds_instance:
id: "{{ instance_id }}"
state: present
vpc_security_group_ids:
- sg-0be17ba10c9286b0b
purge_security_groups: false
register: result
# Add IAM role to db instance
- name: Create IAM policy
amazon.aws.iam_managed_policy:
policy_name: "my-policy"
policy: "{{ lookup('file','files/policy.json') }}"
state: present
register: iam_policy
- name: Create IAM role
community.aws.iam_role:
assume_role_policy_document: "{{ lookup('file','files/assume_policy.json') }}"
name: "my-role"
state: present
managed_policy: "{{ iam_policy.policy.arn }}"
register: iam_role
- name: Create DB instance with added IAM role
amazon.aws.rds_instance:
id: "my-instance-id"
state: present
engine: postgres
engine_version: 14.2
username: "{{ username }}"
password: "{{ password }}"
db_instance_class: db.m6g.large
allocated_storage: "{{ allocated_storage }}"
iam_roles:
- role_arn: "{{ iam_role.arn }}"
feature_name: 's3Export'
- name: Remove IAM role from DB instance
amazon.aws.rds_instance:
id: "my-instance-id"
state: present
purge_iam_roles: true
# Modify the DB instance type without waiting for a maintenance window
- name: Modify an RDS Instance
amazon.aws.rds_instance:
db_instance_identifier: mydbinstance123
instance_class: db.t2.small
apply_immediately: true
register: rds_instance
# Restore DB instance from snapshot
- name: Create a snapshot and wait until completion
amazon.aws.rds_instance_snapshot:
instance_id: 'my-instance-id'
snapshot_id: 'my-new-snapshot'
state: present
wait: true
register: snapshot
- name: Restore DB from snapshot
amazon.aws.rds_instance:
id: 'my-restored-db'
creation_source: snapshot
snapshot_identifier: 'my-new-snapshot'
engine: mariadb
state: present
register: restored_db
返回值
常用的返回值已在此处记录,以下是此模块特有的字段
Key |
描述 |
---|---|
以 GB 为单位的已分配存储大小。对于 Aurora 数据库引擎,此值始终为 1。 返回:始终 示例: |
|
当前关联的角色列表。 返回:始终 示例: |
|
是否在维护期间自动将次要引擎升级应用于 DB 实例。 返回:始终 示例: |
|
DB 实例的可用区。 返回:始终 示例: |
|
保留自动备份的天数。 返回:始终 示例: |
|
数据库实例的 CA 证书标识符。 返回:始终 示例: |
|
是否将标签从 DB 实例复制到 DB 实例的快照。 返回:始终 示例: |
|
DB 实例的 Amazon 资源名称 (ARN)。 返回:始终 示例: |
|
DB 实例的计算和内存容量类名称。 返回:始终 示例: |
|
DB 实例的标识符。 返回:始终 示例: |
|
DB 实例侦听的端口。 返回:始终 示例: |
|
此数据库的当前状态。 返回:始终 示例: |
|
应用于此 DB 实例的 DB 参数组列表。 返回:始终 |
|
DP 参数组的名称。 返回:始终 示例: |
|
参数更新的状态。 返回:始终 示例: |
|
与此 DB 实例关联的 DB 安全组列表。 返回:始终 示例: |
|
与 DB 实例关联的子网组。 返回:始终 |
|
DB 子网组的描述。 返回:始终 示例: |
|
DB 子网组的名称。 返回:始终 示例: |
|
DB 子网组的状态。 返回:始终 示例: |
|
子网元素列表。 返回:始终 |
|
子网的可用区。 返回:始终 |
|
可用区的名称。 返回:始终 示例: |
|
子网的 ID。 返回:始终 示例: |
|
子网的状态。 返回:始终 示例: |
|
数据库子网组的VpcId。 返回:始终 示例: |
|
数据库实例的AWS区域唯一、不可变标识符。 返回:始终 示例: |
|
如果数据库实例启用了删除保护,则为 返回:始终 示例: |
|
与数据库实例关联的活动目录域成员记录。 返回:始终 示例: |
|
连接端点。 返回:始终 |
|
数据库实例的DNS地址。 返回:始终 示例: |
|
创建托管区域时Amazon Route 53分配的ID。 返回:始终 示例: |
|
数据库引擎监听的端口。 返回:始终 示例: |
|
数据库引擎版本。 返回:始终 示例: |
|
数据库引擎版本。 返回:始终 示例: |
|
是否启用了AWS身份和访问管理(IAM)帐户与数据库帐户的映射。 返回:始终 示例: |
|
创建数据库实例的日期和时间。 返回:始终 示例: |
|
当storage_encrypted为true时,加密的DB实例的AWS KMS密钥标识符。 返回: 当storage_encrypted为true时 示例: |
|
可以使用point-in-time restore恢复数据库的最新时间。 返回:始终 示例: |
|
此数据库实例的许可证模型信息。 返回:始终 示例: |
|
数据库实例的主用户名。 返回:始终 示例: |
|
Amazon RDS 可以自动扩展数据库实例存储的上限。 返回: 当存在最大分配存储空间时。 示例: |
|
为数据库实例收集增强型监控指标的时间间隔(以秒为单位)。0表示禁用收集增强型监控指标。 返回:始终 示例: |
|
数据库实例是否为多可用区部署。 返回:始终 示例: |
|
指定是使用多租户配置还是单租户配置(默认)。 返回: 对于Oracle容器数据库(CDB)引擎和boto3_version == “1.28.80” 示例: |
|
此数据库实例的选项组成员资格列表。 返回:始终 |
|
实例所属的选项组的名称。 返回:始终 示例: |
|
数据库实例的选项组成员资格状态。 返回:始终 示例: |
|
数据库实例中待处理的更改。 返回:始终 |
|
如果为数据库实例启用了Performance Insights,则为true,否则为false。 返回:始终 示例: |
|
如果启用了自动备份,则每天创建自动备份的时间范围。 返回:始终 示例: |
|
系统维护可能发生的每周时间范围(UTC)。 返回:始终 示例: |
|
对于具有公开可解析DNS名称的Internet面向实例, 返回:始终 示例: |
|
与此数据库实例关联的只读副本的标识符。 返回:始终 示例: |
|
DB 实例是否已加密。 返回:始终 示例: |
|
要与数据库实例关联的存储类型。 返回:始终 示例: |
|
与数据库实例关联的标签字典。 返回:始终 |
|
数据库实例所属的VPC安全组元素列表。 返回:始终 |
|
VPC安全组的状态。 返回:始终 示例: |
|
VPC安全组的名称。 返回:始终 示例: |