Deprecated

Removed in 3.0.0

i

Reason:The rds module is based upon a deprecated version of the AWS SDK. | Alternative:Use M(community.aws.rds_instance), M(community.aws.rds_instance_info), and M(community.aws.rds_instance_snapshot).

community.aws.rds (2.6.1) — module

create, delete, or modify Amazon rds instances, rds snapshots, and related facts

| "added in version" 1.0.0 of community.aws"

Authors: Bruce Pennypacker (@bpennypacker), Will Thames (@willthames)

Install collection

Install with ansible-galaxy collection install community.aws:==2.6.1


Add to requirements.yml

  collections:
    - name: community.aws
      version: 2.6.1

Description

Creates, deletes, or modifies rds resources.

When creating an instance it can be either a new instance or a read-only replica of an existing instance.

The 'promote' command requires boto >= 2.18.0. Certain features such as tags rely on boto.rds2 (boto >= 2.26.0).

Please use the boto3 based M(community.aws.rds_instance) instead.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Basic mysql provisioning example
  community.aws.rds:
    command: create
    instance_name: new-database
    db_engine: MySQL
    size: 10
    instance_type: db.m1.small
    username: mysql_admin
    password: 1nsecure
    tags:
      Environment: testing
      Application: cms
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create a read-only replica and wait for it to become available
  community.aws.rds:
    command: replicate
    instance_name: new-database-replica
    source_instance: new_database
    wait: yes
    wait_timeout: 600
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Delete an instance, but create a snapshot before doing so
  community.aws.rds:
    command: delete
    instance_name: new-database
    snapshot: new_database_snapshot
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Get facts about an instance
  community.aws.rds:
    command: facts
    instance_name: new-database
  register: new_database_facts
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Rename an instance and wait for the change to take effect
  community.aws.rds:
    command: modify
    instance_name: new-database
    new_instance_name: renamed-database
    wait: yes
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Reboot an instance and wait for it to become available again
  community.aws.rds:
    command: reboot
    instance_name: database
    wait: yes
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Restore a Postgres db instance from a snapshot, wait for it to become available again, and
#  then modify it to add your security group. Also, display the new endpoint.
#  Note that the "publicly_accessible" option is allowed here just as it is in the AWS CLI
- community.aws.rds:
    command: restore
    snapshot: mypostgres-snapshot
    instance_name: MyNewInstanceName
    region: us-west-2
    zone: us-west-2b
    subnet: default-vpc-xx441xxx
    publicly_accessible: yes
    wait: yes
    wait_timeout: 600
    tags:
        Name: pg1_test_name_tag
  register: rds
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- community.aws.rds:
    command: modify
    instance_name: MyNewInstanceName
    region: us-west-2
    vpc_security_groups: sg-xxx945xx
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- ansible.builtin.debug:
    msg: "The new db endpoint is {{ rds.instance.endpoint }}"

Inputs

    
iops:
    description:
    - Specifies the number of IOPS for the instance.
    - Used only when I(command=create) or I(command=modify).
    - Must be an integer greater than 1000.
    type: str

port:
    description:
    - Port number that the DB instance uses for connections.
    - Used only when I(command=create) or I(command=replicate).
    - 'Defaults to the standard ports for each I(db_engine): C(3306) for MySQL and MariaDB,
      C(1521) for Oracle C(1433) for SQL Server, C(5432) for PostgreSQL.'
    type: int

size:
    description:
    - Size in gigabytes of the initial storage for the DB instance.
    - Used only when I(command=create) or I(command=modify).
    type: str

tags:
    description:
    - tags dict to apply to a resource.
    - Used with I(command=create), I(command=replicate), I(command=restore).
    - Requires boto >= 2.26.0
    type: dict

wait:
    default: false
    description:
    - When I(command=create), replicate, modify or restore then wait for the database
      to enter the 'available' state.
    - When I(command=delete), wait for the database to be terminated.
    type: bool

zone:
    aliases:
    - aws_zone
    - ec2_zone
    description:
    - availability zone in which to launch the instance.
    - Used only when I(command=create), I(command=replicate) or I(command=restore).
    - Can not be used in conjunction with I(multi_zone) parameter.
    type: str

region:
    aliases:
    - aws_region
    - ec2_region
    description:
    - The AWS region to use.
    - For global services such as IAM, Route53 and CloudFront, I(region) is ignored.
    - The C(AWS_REGION) or C(EC2_REGION) environment variables may also be used.
    - See the Amazon AWS documentation for more information U(http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region).
    - The C(ec2_region) alias has been deprecated and will be removed in a release after
      2024-12-01
    - Support for the C(EC2_REGION) environment variable has been deprecated and will
      be removed in a release after 2024-12-01.
    type: str

subnet:
    description:
    - VPC subnet group.
    - If specified then a VPC instance is created.
    - Used only when I(command=create).
    type: str

command:
    choices:
    - create
    - replicate
    - delete
    - facts
    - modify
    - promote
    - snapshot
    - reboot
    - restore
    description:
    - Specifies the action to take. The 'reboot' option is available starting at version
      2.0.
    required: true
    type: str

db_name:
    description:
    - Name of a database to create within the instance.
    - If not specified then no database is created.
    - Used only when I(command=create).
    type: str

profile:
    aliases:
    - aws_profile
    description:
    - A named AWS profile to use for authentication.
    - See the AWS documentation for more information about named profiles U(https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html).
    - The C(AWS_PROFILE) environment variable may also be used.
    - The I(profile) option is mutually exclusive with the I(aws_access_key), I(aws_secret_key)
      and I(security_token) options.
    type: str

upgrade:
    default: false
    description:
    - Indicates that minor version upgrades should be applied automatically.
    - Used only when I(command=create) or I(command=modify) or I(command=restore) or I(command=replicate).
    type: bool

password:
    description:
    - Password for the master database username.
    - Used only when I(command=create) or I(command=modify).
    type: str

snapshot:
    description:
    - Name of snapshot to take.
    - When I(command=delete), if no I(snapshot) name is provided then no snapshot is taken.
    - When I(command=delete), if no I(instance_name) is provided the snapshot is deleted.
    - Used with I(command=facts), I(command=delete) or I(command=snapshot).
    type: str

username:
    description:
    - Master database username.
    - Used only when I(command=create).
    type: str

db_engine:
    choices:
    - mariadb
    - MySQL
    - oracle-se1
    - oracle-se2
    - oracle-se
    - oracle-ee
    - sqlserver-ee
    - sqlserver-se
    - sqlserver-ex
    - sqlserver-web
    - postgres
    - aurora
    description:
    - The type of database.
    - Used only when I(command=create).
    - mariadb was added in version 2.2.
    type: str

access_key:
    aliases:
    - aws_access_key_id
    - aws_access_key
    - ec2_access_key
    description:
    - AWS access key ID.
    - See the AWS documentation for more information about access tokens U(https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).
    - The C(AWS_ACCESS_KEY_ID), C(AWS_ACCESS_KEY) or C(EC2_ACCESS_KEY) environment variables
      may also be used in decreasing order of preference.
    - The I(aws_access_key) and I(profile) options are mutually exclusive.
    - The I(aws_access_key_id) alias was added in release 5.1.0 for consistency with the
      AWS botocore SDK.
    - The I(ec2_access_key) alias has been deprecated and will be removed in a release
      after 2024-12-01.
    - Support for the C(EC2_ACCESS_KEY) environment variable has been deprecated and will
      be removed in a release after 2024-12-01.
    type: str

aws_config:
    description:
    - A dictionary to modify the botocore configuration.
    - Parameters can be found in the AWS documentation U(https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config).
    type: dict

multi_zone:
    description:
    - Specifies if this is a Multi-availability-zone deployment.
    - Can not be used in conjunction with I(zone) parameter.
    - Used only when I(command=create) or I(command=modify).
    type: bool

secret_key:
    aliases:
    - aws_secret_access_key
    - aws_secret_key
    - ec2_secret_key
    description:
    - AWS secret access key.
    - See the AWS documentation for more information about access tokens U(https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).
    - The C(AWS_SECRET_ACCESS_KEY), C(AWS_SECRET_KEY), or C(EC2_SECRET_KEY) environment
      variables may also be used in decreasing order of preference.
    - The I(secret_key) and I(profile) options are mutually exclusive.
    - The I(aws_secret_access_key) alias was added in release 5.1.0 for consistency with
      the AWS botocore SDK.
    - The I(ec2_secret_key) alias has been deprecated and will be removed in a release
      after 2024-12-01.
    - Support for the C(EC2_SECRET_KEY) environment variable has been deprecated and will
      be removed in a release after 2024-12-01.
    type: str

endpoint_url:
    aliases:
    - ec2_url
    - aws_endpoint_url
    - s3_url
    description:
    - URL to connect to instead of the default AWS endpoints.  While this can be used
      to connection to other AWS-compatible services the amazon.aws and community.aws
      collections are only tested against AWS.
    - The  C(AWS_URL) or C(EC2_URL) environment variables may also be used, in decreasing
      order of preference.
    - The I(ec2_url) and I(s3_url) aliases have been deprecated and will be removed in
      a release after 2024-12-01.
    - Support for the C(EC2_URL) environment variable has been deprecated and will be
      removed in a release after 2024-12-01.
    type: str

maint_window:
    description:
    - 'Maintenance window in format of C(ddd:hh24:mi-ddd:hh24:mi).  (Example: C(Mon:22:00-Mon:23:15))'
    - Times are specified in UTC.
    - If not specified then a random maintenance window is assigned.
    - Used only when I(command=create) or I(command=modify).
    type: str

option_group:
    description:
    - The name of the option group to use.
    - If not specified then the default option group is used.
    - Used only when I(command=create).
    type: str

wait_timeout:
    default: 300
    description:
    - How long before wait gives up, in seconds.
    - Used when I(wait=true).
    type: int

aws_ca_bundle:
    description:
    - The location of a CA Bundle to use when validating SSL certificates.
    - The C(AWS_CA_BUNDLE) environment variable may also be used.
    type: path

backup_window:
    description:
    - 'Backup window in format of C(hh24:mi-hh24:mi). (Example: C(18:00-20:30))'
    - Times are specified in UTC.
    - If not specified then a random backup window is assigned.
    - Used only when command=create or command=modify.
    type: str

instance_name:
    description:
    - Database instance identifier.
    - Required except when using I(command=facts) or I(command=delete) on just a snapshot.
    type: str

instance_type:
    aliases:
    - type
    description:
    - The instance type of the database.
    - If not specified then the replica inherits the same instance type as the source
      instance.
    - Required when I(command=create).
    - Optional when I(command=replicate), I(command=modify) or I(command=restore).
    type: str

license_model:
    choices:
    - license-included
    - bring-your-own-license
    - general-public-license
    - postgresql-license
    description:
    - The license model for this DB instance.
    - Used only when I(command=create) or I(command=restore).
    type: str

session_token:
    aliases:
    - aws_session_token
    - security_token
    - aws_security_token
    - access_token
    description:
    - AWS STS session token for use with temporary credentials.
    - See the AWS documentation for more information about access tokens U(https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).
    - The C(AWS_SESSION_TOKEN), C(AWS_SECURITY_TOKEN) or C(EC2_SECURITY_TOKEN) environment
      variables may also be used in decreasing order of preference.
    - The I(security_token) and I(profile) options are mutually exclusive.
    - Aliases I(aws_session_token) and I(session_token) were added in release 3.2.0, with
      the parameter being renamed from I(security_token) to I(session_token) in release
      6.0.0.
    - The I(security_token), I(aws_security_token), and I(access_token) aliases have been
      deprecated and will be removed in a release after 2024-12-01.
    - Support for the C(EC2_SECRET_KEY) and C(AWS_SECURITY_TOKEN) environment variables
      has been deprecated and will be removed in a release after 2024-12-01.
    type: str

engine_version:
    description:
    - Version number of the database engine to use.
    - If not specified then the current Amazon RDS default engine version is used
    - Used only when I(command=create).
    type: str

force_failover:
    default: false
    description:
    - If enabled, the reboot is done using a MultiAZ failover.
    - Used only when I(command=reboot).
    type: bool

validate_certs:
    default: true
    description:
    - When set to C(false), SSL certificates will not be validated for communication with
      the AWS APIs.
    - Setting I(validate_certs=false) is strongly discouraged, as an alternative, consider
      setting I(aws_ca_bundle) instead.
    type: bool

parameter_group:
    description:
    - Name of the DB parameter group to associate with this instance.
    - If omitted then the RDS default DBParameterGroup will be used.
    - Used only when I(command=create) or I(command=modify).
    type: str

security_groups:
    description:
    - Comma separated list of one or more security groups.
    - Used only when I(command=create) or I(command=modify).
    type: str

source_instance:
    description:
    - Name of the database to replicate.
    - Used only when I(command=replicate).
    type: str

backup_retention:
    description:
    - Number of days backups are retained.
    - Set to 0 to disable backups.
    - Default is 1 day.
    - 'Valid range: 0-35.'
    - Used only when I(command=create) or I(command=modify).
    type: str

apply_immediately:
    default: false
    description:
    - When I(apply_immediately=true), the modifications will be applied as soon as possible
      rather than waiting for the next preferred maintenance window.
    - Used only when I(command=modify).
    type: bool

new_instance_name:
    description:
    - Name to rename an instance to.
    - Used only when I(command=modify).
    type: str

character_set_name:
    description:
    - Associate the DB instance with a specified character set.
    - Used with I(command=create).
    type: str

publicly_accessible:
    description:
    - Explicitly set whether the resource should be publicly accessible or not.
    - Used with I(command=create), I(command=replicate).
    - Requires boto >= 2.26.0
    type: str

vpc_security_groups:
    description:
    - Comma separated list of one or more vpc security group ids.
    - Also requires I(subnet) to be specified.
    - Used only when I(command=create) or I(command=modify).
    elements: str
    type: list

debug_botocore_endpoint_logs:
    default: false
    description:
    - Use a C(botocore.endpoint) logger to parse the unique (rather than total) C("resource:action")
      API calls made during a task, outputing the set to the resource_actions key in the
      task results. Use the C(aws_resource_action) callback to output to total list made
      during a playbook.
    - The C(ANSIBLE_DEBUG_BOTOCORE_LOGS) environment variable may also be used.
    type: bool

Outputs

instance:
  contains:
    allocated_storage:
      description: the allocated storage size in gigabytes (GB)
      returned: when RDS instance exists
      sample: '100'
      type: str
    auto_minor_version_upgrade:
      description: indicates that minor engine upgrades will be applied automatically
        to the DB instance during the maintenance window
      returned: when RDS instance exists
      sample: 'true'
      type: bool
    backup_window:
      description: the daily time range during which automated backups are created
        if automated backups are enabled
      returned: when RDS instance exists and automated backups are enabled
      sample: 03:00-03:30
      type: str
    character_set_name:
      description: the name of the character set that this instance is associated
        with
      returned: when RDS instance exists
      sample: AL32UTF8
      type: str
    db_name:
      description: the name of the database to create when the DB instance is created
      returned: when RDS instance exists
      sample: ASERTG
      type: str
    db_subnet_groups:
      contains:
        description:
          description: the subnet group associated with the DB instance
          returned: when RDS instance exists
          sample: Subnets for the UAT RDS SQL DB Instance
          type: str
        name:
          description: the name of the DB subnet group
          returned: when RDS instance exists
          sample: samplesubnetgrouprds-j6paiqkxqp4z
          type: str
        status:
          description: the status of the DB subnet group
          returned: when RDS instance exists
          sample: complete
          type: str
        subnets:
          contains:
            availability_zone:
              contains:
                name:
                  description: availability zone
                  returned: when RDS instance exists
                  sample: eu-west-1b
                  type: str
                provisioned_iops_capable:
                  description: whether provisioned iops are available in AZ subnet
                  returned: when RDS instance exists
                  sample: 'false'
                  type: bool
              description: subnet availability zone information
              returned: when RDS instance exists
              type: complex
            identifier:
              description: the identifier of the subnet
              returned: when RDS instance exists
              sample: subnet-3fdba63e
              type: str
            status:
              description: the status of the subnet
              returned: when RDS instance exists
              sample: active
              type: str
          description: the description of the DB subnet group
          returned: when RDS instance exists
          type: complex
      description: information on the subnet group associated with this RDS instance
      returned: when RDS instance exists
      type: complex
    endpoint:
      description: the endpoint uri of the database instance
      returned: when RDS instance exists
      sample: my-ansible-database.asdfaosdgih.us-east-1.rds.amazonaws.com
      type: str
    engine:
      description: the name of the database engine
      returned: when RDS instance exists
      sample: oracle-se
      type: str
    engine_version:
      description: the version of the database engine
      returned: when RDS instance exists
      sample: 11.2.0.4.v6
      type: str
    latest_restorable_time:
      description: the latest time to which a database can be restored with point-in-time
        restore
      returned: when RDS instance exists
      sample: '1489707802.0'
      type: str
    license_model:
      description: the license model information
      returned: when RDS instance exists
      sample: bring-your-own-license
      type: str
    option_groups:
      contains:
        option_group_name:
          description: the option group name for this RDS instance
          returned: when RDS instance exists
          sample: default:oracle-se-11-2
          type: str
        status:
          description: the status of the RDS instance's option group membership
          returned: when RDS instance exists
          sample: in-sync
          type: str
      description: the list of option group memberships for this RDS instance
      returned: when RDS instance exists
      type: complex
    parameter_groups:
      contains:
        parameter_apply_status:
          description: the status of parameter updates
          returned: when RDS instance exists
          sample: in-sync
          type: str
        parameter_group_name:
          description: the name of the DP parameter group
          returned: when RDS instance exists
          sample: testawsrpprodb01spfile-1ujg7nrs7sgyz
          type: str
      description: the list of DB parameter groups applied to this RDS instance
      returned: when RDS instance exists and parameter groups are defined
      type: complex
    pending_modified_values:
      contains:
        allocated_storage:
          description: the new allocated storage size for this RDS instance that will
            be applied or is in progress
          returned: when RDS instance exists
          sample: 'null'
          type: str
        backup_retention_period:
          description: the pending number of days for which automated backups are
            retained
          returned: when RDS instance exists
          sample: 'null'
          type: str
        db_instance_class:
          description: the new DB instance class for this RDS instance that will be
            applied or is in progress
          returned: when RDS instance exists
          sample: 'null'
          type: str
        db_instance_identifier:
          description: the new DB instance identifier this RDS instance that will
            be applied or is in progress
          returned: when RDS instance exists
          sample: 'null'
          type: str
        engine_version:
          description: indicates the database engine version
          returned: when RDS instance exists
          sample: 'null'
          type: str
        iops:
          description: the new provisioned IOPS value for this RDS instance that will
            be applied or is being applied
          returned: when RDS instance exists
          sample: 'null'
          type: str
        master_user_password:
          description: the pending or in-progress change of the master credentials
            for this RDS instance
          returned: when RDS instance exists
          sample: 'null'
          type: str
        multi_az:
          description: indicates that the single-AZ RDS instance is to change to a
            multi-AZ deployment
          returned: when RDS instance exists
          sample: 'null'
          type: str
        port:
          description: specifies the pending port for this RDS instance
          returned: when RDS instance exists
          sample: 'null'
          type: str
      description: a dictionary of changes to the RDS instance that are pending
      returned: when RDS instance exists
      type: complex
    port:
      description: the listening port of the database instance
      returned: when RDS instance exists
      sample: 3306
      type: int
    publicly_accessible:
      description: the accessibility options for the DB instance
      returned: when RDS instance exists
      sample: 'true'
      type: bool
    read_replica_source_dbinstance_identifier:
      description: the identifier of the source DB instance if this RDS instance is
        a read replica
      returned: when read replica RDS instance exists
      sample: 'null'
      type: str
    secondary_availability_zone:
      description: the name of the secondary AZ for a DB instance with multi-AZ support
      returned: when RDS instance exists and is multi-AZ
      sample: eu-west-1b
      type: str
  description: the rds instance
  returned: always
  type: complex