New in version 2015.8.0.
Create and destroy RDS instances. Be aware that this interacts with Amazon's services, and so may incur charges.
This module uses boto
, which can be installed via package, or pip.
This module accepts explicit rds credentials but can also utilize IAM roles assigned to the instance through Instance Profiles. Dynamic credentials are then automatically obtained from AWS API and no further configuration is necessary. More information available here.
If IAM roles are not used you need to specify them either in a pillar file or in the minion's config file:
rds.keyid: GKTADJGHEIQSXMKKRBJ08H
rds.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
It's also possible to specify key
, keyid
and region
via a profile,
either passed in as a dict, or as a string to pull from pillars or minion
config:
myprofile:
keyid: GKTADJGHEIQSXMKKRBJ08H
key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
region: us-east-1
Ensure myrds RDS exists:
boto_rds.present:
- name: myrds
- allocated_storage: 5
- storage_type: standard
- db_instance_class: db.t2.micro
- engine: MySQL
- master_username: myuser
- master_user_password: mypass
- region: us-east-1
- keyid: GKTADJGHEIQSXMKKRBJ08H
- key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
- tags:
key: value
Ensure parameter group exists:
create-parameter-group:
boto_rds.parameter_present:
- name: myparametergroup
- db_parameter_group_family: mysql5.6
- description: "parameter group family"
- parameters:
- binlog_cache_size: 32768
- binlog_checksum: CRC32
- region: eu-west-1
boto3
Ensure RDS instance is absent.
Name of the RDS instance.
Whether a final db snapshot is created before the instance is deleted. If True, no snapshot is created. If False, a snapshot is created before deleting the instance.
If a final snapshot is requested, this is the identifier used for that snapshot.
A dict of tags.
Wait for the RDS instance to be deleted completely before finishing the state.
The amount of time that can pass before raising an Exception.
Region to connect to.
Secret key to be used.
Access key to be used.
A dict with region, key and keyid, or a pillar key (string) that contains a dict with region, key and keyid.
Ensure DB parameter group exists and update parameters.
The name for the parameter group.
The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a database engine and engine version compatible with that DB parameter group family.
Parameter group description.
The DB parameters that need to be changed of type dictionary.
The apply-immediate method can be used only for dynamic parameters; the pending-reboot method can be used with MySQL and Oracle DB instances for either dynamic or static parameters. For Microsoft SQL Server DB instances, the pending-reboot method can be used only for static parameters.
A dict of tags.
Region to connect to.
Secret key to be used.
Access key to be used.
A dict with region, key and keyid, or a pillar key (string) that contains a dict with region, key and keyid.
Ensure RDS instance exists.
Name of the RDS state definition.
The amount of storage (in gigabytes) to be initially allocated for the database instance.
The compute and memory capacity of the Amazon RDS DB instance.
The name of the database engine to be used for this instance. Supported
engine types are: MySQL, mariadb, oracle-se1, oracle-se, oracle-ee, sqlserver-ee,
sqlserver-se, sqlserver-ex, sqlserver-web, postgres and aurora. For more
information, please see the engine
argument in the Boto3 RDS
create_db_instance documentation.
The name of master user for the client DB instance.
The password for the master database user. Can be any printable ASCII character except "/", '"', or "@".
The meaning of this parameter differs according to the database engine you use. See the Boto3 RDS documentation to determine the appropriate value for your configuration. https://boto3.readthedocs.io/en/latest/reference/services/rds.html#RDS.Client.create_db_instance
Specifies the storage type to be associated with the DB instance. Options are standard, gp2 and io1. If you specify io1, you must also include a value for the Iops parameter.
A list of DB security groups to associate with this DB instance.
A list of EC2 VPC security group IDs to associate with this DB instance.
A list of EC2 VPC security groups (IDs or Name tags) to associate with this DB instance.
The EC2 Availability Zone that the database instance will be created in.
A DB subnet group to associate with this DB instance.
The weekly time range (in UTC) during which system maintenance can occur.
A DB parameter group to associate with this DB instance.
If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of.
The ARN from the Key Store with which the instance is associated for TDE encryption.
The password to use for TDE encryption if an encryption key is not used.
Specifies whether the DB instance is encrypted.
If storage_encrypted is true, the KMS key identifier for the encrypted DB instance.
The number of days for which automated backups are retained.
The daily time range during which automated backups are created if automated backups are enabled.
The port number on which the database accepts connections.
Specifies if the DB instance is a Multi-AZ deployment. You cannot set the AvailabilityZone parameter if the MultiAZ parameter is set to true.
The version number of the database engine to use.
Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window.
License model information for this DB instance.
The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance.
Indicates that the DB instance should be associated with the specified option group.
For supported engines, indicates that the DB instance should be associated with the specified CharacterSet.
Specifies the accessibility options for the DB instance. A value of true specifies an Internet-facing instance with a publicly resolvable DNS name, which resolves to a public IP address. A value of false specifies an internal instance with a DNS name that resolves to a private IP address.
Wait for the RDS instance to reach a desired status before finishing the state. Available states: available, modifying, backing-up
A dict of tags.
Specifies whether tags are copied from the DB instance to snapshots of the DB instance.
Region to connect to.
The identifier of the Active Directory Domain.
AWS secret key to be used.
AWS access key to be used.
The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance.
The ARN for the IAM role that permits RDS to send Enhanced Monitoring metrics to CloudWatch Logs.
Specify the name of the IAM role to be used when making API calls to the Directory Service.
A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see Fault Tolerance for an Aurora DB Cluster .
A dict with region, key and keyid, or a pillar key (string) that contains a dict with region, key and keyid.
Ensure RDS replica exists.
Ensure myrds replica RDS exists:
boto_rds.create_replica:
- name: myreplica
- source: mydb
Ensure DB subnet group exists.
The name for the DB subnet group. This value is stored as a lowercase string.
A list of the EC2 Subnet IDs for the DB subnet group. Either subnet_ids or subnet_names must be provided.
A list of The EC2 Subnet names for the DB subnet group. Either subnet_ids or subnet_names must be provided.
Subnet group description.
A dict of tags.
Region to connect to.
Secret key to be used.
Access key to be used.
A dict with region, key and keyid, or a pillar key (string) that contains a dict with region, key and keyid.