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 数据库实例添加到的数据库集群(小写)标识符。标识符必须包含 1 到 63 个字母、数字或连字符,并且第一个字符必须是字母,不能以连字符结尾或包含连续的连字符。 |
|
数据库实例的计算和内存容量,例如 |
|
数据库实例(小写)标识符。标识符必须包含 1 到 63 个字母、数字或连字符,并且第一个字符必须是字母,不能以连字符结尾或包含连续的连字符。 |
|
您的数据库名称。如果未提供名称,Amazon RDS 将不会创建数据库。 |
|
要与此数据库实例关联的数据库参数组的名称。在创建数据库实例时,如果省略此参数,则使用指定引擎的默认 DBParameterGroup。 |
|
(EC2-Classic 平台)要与此数据库实例关联的数据库安全组的列表。 |
|
当使用 |
|
用于数据库实例的数据库子网组名称。 |
|
使用 也可以使用 选择
|
|
一个值,指示是否启用了数据库实例的删除保护。启用删除保护后,无法删除数据库。默认情况下,删除保护处于禁用状态。 选择
|
|
要还原实例的 Active Directory 域。 |
|
在对目录服务进行 API 调用时要使用的 IAM 角色的名称。 |
|
需要启用以导出到 CloudWatch Logs 的日志类型列表。 |
|
启用将 AWS Identity and Access Management (IAM) 账户映射到数据库账户。如果在创建实例时省略此选项,Amazon RDS 会将其设置为 选择
|
|
是否为数据库实例启用 Performance Insights。 选择
|
|
要连接到的 URL,而不是默认的 AWS 端点。虽然这可以用于连接到其他与 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 密钥别名而不是 KMS 加密密钥的 ARN。 如果 |
|
数据库实例的许可证模型。 有几个选项是 license-included、bring-your-own-license 和 general-public-license。 也可以省略此选项以默认接受值。 |
|
主数据库用户的 8-41 个字符的密码。密码可以包含除 |
|
数据库实例主用户的名称。必须是 1-16 个字母或数字,并以字母开头。 |
|
Amazon RDS 可以自动扩展数据库实例存储的上限。 |
|
以秒为单位的间隔,当收集数据库实例的增强监控指标时。要禁用收集指标,请指定 |
|
允许 RDS 将增强监控指标发送到 Amazon CloudWatch Logs 的 IAM 角色的 ARN。 |
|
指定是使用多租户配置还是单租户配置(默认)。 此参数仅适用于 RDS for Oracle 容器数据库 (CDB) 引擎。 您在请求中指定的数据库引擎必须支持多租户配置。 如果在创建数据库实例期间启用多租户配置,则以后无法修改它。 选择
|
|
重命名数据库实例时,新的数据库实例(小写)标识符。该标识符必须包含 1 到 63 个字母、数字或连字符,并且第一个字符必须是字母,不能以连字符结尾或包含连续的连字符。使用 |
|
要与数据库实例关联的选项组。 |
|
用于加密性能分析数据的 AWS KMS 密钥标识符(ARN、名称或别名)。 |
|
保留性能分析数据的时间长度(以天为单位)。有效值为 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 副本提升为主实例的顺序。 |
|
指定数据库实例的可访问性选项。值 Vtrue) 指定具有可公开解析的 DNS 名称的面向 Internet 的实例,该名称解析为公共 IP 地址。值 选择
|
|
设置为 将 选择
|
|
设置为 选择
|
|
设置为 可以应用于 选择
|
|
如果 如果未设置 以 选择
|
|
设置为 选择
|
|
要使用的 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 数据库实例的数据的 Amazon S3 存储桶的名称。 |
|
AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称 (ARN),该角色授权 Amazon RDS 代表您访问 Amazon S3 存储桶。 |
|
包含用于创建 Amazon 数据库实例的数据的所有文件名的前缀。如果未指定 SourceS3Prefix 值,则通过使用 Amazon S3 存储桶中的所有文件来创建 Amazon 数据库实例。 |
|
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 别名。 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 之后的版本中删除。 对 |
|
当使用 |
|
用于创建存储在 Amazon S3 存储桶中的文件的数据库引擎的标识符。 选择
|
|
创建备份文件的数据库版本。 |
|
从中创建副本的数据库实例的区域。 |
|
RDS 实例的期望状态。
选择
|
|
数据库实例是否已加密。 选择
|
|
当 当分配的存储空间低于 400 GB 时,存储吞吐量始终为 125 mb/s。 当分配的存储空间大于或等于 400 GB 时,吞吐量从 500 mb/s 开始。 |
|
表示要应用于资源的标签的字典。 如果未设置 |
|
用于关联透明数据加密的密钥库中的 ARN。Oracle 或 SQL Server 数据库实例支持此功能,并且可以与 |
|
用于访问设备的密钥库中给定 ARN 的密码。 |
|
数据库实例的时区。 |
|
当设置为 强烈建议不要设置 validate_certs=false,作为替代方案,请考虑设置 aws_ca_bundle。 选择
|
|
要与数据库实例关联的 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
返回值
通用返回值记录在 此处,以下是此模块独有的字段
allocated_storage |
描述 |
---|---|
以千兆字节为单位的已分配存储大小。对于 Aurora 数据库引擎,此值始终为 1。 返回: 始终 示例: |
|
当前关联的角色列表。 返回: 始终 示例: |
|
auto_minor_version_upgrade 返回: 始终 是否在维护窗口期间将次要引擎升级自动应用于数据库实例。 |
|
availability_zone 返回: 始终 数据库实例的可用区。 |
|
自动备份保留的天数。 返回: 始终 示例: |
|
数据库实例的 CA 证书标识符。 返回: 始终 示例: |
|
copy_tags_to_snapshot 返回: 始终 是否将标签从数据库实例复制到数据库实例的快照。 |
|
数据库实例的 Amazon 资源名称 (ARN)。 返回: 始终 示例: |
|
数据库实例的计算和内存容量类的名称。 返回: 始终 示例: |
|
数据库实例的标识符。 返回: 始终 示例: |
|
数据库实例侦听的端口。 返回: 始终 示例: |
|
此数据库的当前状态。 返回: 始终 示例: |
|
应用于此数据库实例的数据库参数组的列表。 返回: 始终 |
|
DP 参数组的名称。 返回: 始终 示例: |
|
参数更新的状态。 返回: 始终 示例: |
|
与此数据库实例关联的数据库安全组的列表。 返回: 始终 示例: |
|
与数据库实例关联的子网组。 返回: 始终 |
|
数据库子网组的描述。 返回: 始终 示例: |
|
数据库子网组的名称。 返回: 始终 示例: |
|
数据库子网组的状态。 返回: 始终 示例: |
|
子网元素的列表。 返回: 始终 |
|
子网的可用区。 返回: 始终 |
|
可用区的名称。 返回: 始终 示例: |
|
子网的 ID。 返回: 始终 示例: |
|
子网的状态。 返回: 始终 示例: |
|
数据库子网组的 VpcId。 返回: 始终 示例: |
|
数据库实例的 AWS 区域唯一、不可变的标识符。 返回: 始终 示例: |
|
如果数据库实例启用了删除保护,则为 返回: 始终 是否将标签从数据库实例复制到数据库实例的快照。 |
|
与数据库实例关联的 Active Directory 域成员资格记录。 返回: 始终 示例: |
|
连接端点。 返回: 始终 |
|
数据库实例的 DNS 地址。 返回: 始终 示例: |
|
当您创建托管区域时,Amazon Route 53 分配的 ID。 返回: 始终 示例: |
|
数据库引擎正在侦听的端口。 返回: 始终 示例: |
|
数据库引擎版本。 返回: 始终 示例: |
|
数据库引擎版本。 返回: 始终 示例: |
|
是否启用了 AWS Identity and Access Management (IAM) 帐户到数据库帐户的映射。 返回: 始终 是否将标签从数据库实例复制到数据库实例的快照。 |
|
创建数据库实例的日期和时间。 返回: 始终 示例: |
|
当 storage_encrypted 为 true 时,加密的数据库实例的 AWS KMS 密钥标识符。 返回值: 当 storage_encrypted 为 true 时 示例: |
|
可以使用时间点还原将数据库还原到的最新时间。 返回: 始终 示例: |
|
此数据库实例的许可证模型信息。 返回: 始终 示例: |
|
数据库实例的主用户名。 返回: 始终 示例: |
|
Amazon RDS 可以自动扩展数据库实例存储的上限。 返回值: 当存在最大分配存储时。 示例: |
|
为数据库实例收集增强监控指标的时间间隔(以秒为单位)。 0 表示禁用收集增强监控指标。 返回: 始终 示例: |
|
数据库实例是否为多可用区部署。 返回: 始终 是否将标签从数据库实例复制到数据库实例的快照。 |
|
指定是使用多租户配置还是单租户配置(默认)。 返回值: 对于 Oracle 容器数据库 (CDB) 引擎和 boto3_version == “1.28.80” 是否将标签从数据库实例复制到数据库实例的快照。 |
|
此数据库实例的选项组会员资格列表。 返回: 始终 |
|
实例所属的选项组的名称。 返回: 始终 示例: |
|
数据库实例选项组会员资格的状态。 返回: 始终 示例: |
|
数据库实例的待定更改。 返回: 始终 |
|
如果为数据库实例启用了 Performance Insights,则为 true,否则为 false。 返回: 始终 是否将标签从数据库实例复制到数据库实例的快照。 |
|
如果启用了自动备份,则在其中创建自动备份的每日时间范围。 返回: 始终 示例: |
|
可以进行系统维护的每周时间范围(以 UTC 为单位)。 返回: 始终 示例: |
|
对于具有可公开解析的 DNS 名称的面向 Internet 的实例,为 返回: 始终 是否在维护窗口期间将次要引擎升级自动应用于数据库实例。 |
|
与此数据库实例关联的只读副本的标识符。 返回: 始终 示例: |
|
数据库实例是否已加密。 返回: 始终 是否将标签从数据库实例复制到数据库实例的快照。 |
|
要与数据库实例关联的存储类型。 返回: 始终 示例: |
|
与数据库实例关联的标签字典。 返回: 始终 |
|
数据库实例所属的 VPC 安全组元素的列表。 返回: 始终 |
|
VPC 安全组的状态。 返回: 始终 示例: |
|
VPC 安全组的名称。 返回: 始终 示例: |