salt.states.boto_rds

Manage RDSs

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
    - db_instance_class: db.t2.micro
    - engine: MySQL
    - master_username: myuser
    - master_user_password: mypass
    - region: us-east-1
    - keyid: GKTADJGHEIQSXMKKRBJ08H
    - key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
    - tags:
      -
        - key1
        - value1
      -
        - key2
        - value2
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

注解

This state module uses boto.rds2, which requires a different tagging syntax than some of the other boto states. The tags key and value set noted in the example above is the required yaml notation that rds2 depends upon to function properly. For more information, please see Issue #28715.

salt.states.boto_rds.absent(name, skip_final_snapshot=None, final_db_snapshot_identifier=None, tags=None, region=None, key=None, keyid=None, profile=None, wait_for_deletion=True, timeout=180)

Ensure RDS instance is absent.

name
Name of the RDS instance.
skip_final_snapshot
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.
final_db_snapshot_identifier
If a final snapshot is requested, this is the identifier used for that snapshot.
tags
A list of tags.
region
Region to connect to.
key
Secret key to be used.
keyid
Access key to be used.
profile
A dict with region, key and keyid, or a pillar key (string) that contains a dict with region, key and keyid.
wait_for_deletion (bool)
Wait for the RDS instance to be deleted completely before finishing the state.
timeout (in seconds)
The amount of time that can pass before raising an Exception.
salt.states.boto_rds.parameter_present(name, db_parameter_group_family, description, parameters=None, apply_method='pending-reboot', tags=None, region=None, key=None, keyid=None, profile=None)

Ensure DB parameter group exists and update parameters.

name
The name for the parameter group.
db_parameter_group_family
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.
description
Parameter group description.
parameters
The DB parameters that need to be changed of type dictionary.
apply_method
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.
tags
A list of tags.
region
Region to connect to.
key
Secret key to be used.
keyid
Access key to be used.
profile
A dict with region, key and keyid, or a pillar key (string) that contains a dict with region, key and keyid.
salt.states.boto_rds.present(name, allocated_storage, db_instance_class, engine, master_username, master_user_password, db_name=None, db_security_groups=None, vpc_security_group_ids=None, availability_zone=None, db_subnet_group_name=None, preferred_maintenance_window=None, db_parameter_group_name=None, backup_retention_period=None, preferred_backup_window=None, port=None, multi_az=None, engine_version=None, auto_minor_version_upgrade=None, license_model=None, iops=None, option_group_name=None, character_set_name=None, publicly_accessible=None, wait_status=None, tags=None, region=None, key=None, keyid=None, profile=None)

Ensure RDS instance exists.

name
Name of the RDS instance.
allocated_storage
The amount of storage (in gigabytes) to be initially allocated for the database instance.
db_instance_class
The compute and memory capacity of the Amazon RDS DB instance.
engine
The name of the database engine to be used for this instance. Supported engine types are: MySQL, oracle-se1, oracle-se, oracle-ee, sqlserver-ee, sqlserver-se, sqlserver-ex, sqlserver-web, and postgres. For more information, please see the engine argument in the boto_rds create_dbinstance documentation.
master_username
The name of master user for the client DB instance.
master_user_password
The password for the master database user. Can be any printable ASCII character except "/", '"', or "@".
db_name
The database name for the restored DB instance.
db_security_groups
A list of DB security groups to associate with this DB instance.
vpc_security_group_ids
A list of EC2 VPC security groups to associate with this DB instance.
availability_zone
The EC2 Availability Zone that the database instance will be created in.
db_subnet_group_name
A DB subnet group to associate with this DB instance.
preferred_maintenance_window
The weekly time range (in UTC) during which system maintenance can occur.
backup_retention_period
The number of days for which automated backups are retained.
preferred_backup_window
The daily time range during which automated backups are created if automated backups are enabled.
port
The port number on which the database accepts connections.
multi_az
Specifies if the DB instance is a Multi-AZ deployment. You cannot set the AvailabilityZone parameter if the MultiAZ parameter is set to true.
engine_version
The version number of the database engine to use.
auto_minor_version_upgrade
Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window.
license_model
License model information for this DB instance.
iops
The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance.
option_group_name
Indicates that the DB instance should be associated with the specified option group.
character_set_name
For supported engines, indicates that the DB instance should be associated with the specified CharacterSet.
publicly_accessible
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_status
Wait for the RDS instance to reach a desired status before finishing the state. Available states: available, modifying, backing-up
tags
A list of tags.
region
Region to connect to.
key
Secret key to be used.
keyid
Access key to be used.
profile
A dict with region, key and keyid, or a pillar key (string) that contains a dict with region, key and keyid.
salt.states.boto_rds.replica_present(name, source, db_instance_class=None, availability_zone=None, port=None, auto_minor_version_upgrade=None, iops=None, option_group_name=None, publicly_accessible=None, tags=None, region=None, key=None, keyid=None, profile=None)

Ensure RDS replica exists.

Ensure myrds replica RDS exists:
  boto_rds.create_replica:
    - name: myreplica
    - source: mydb
salt.states.boto_rds.subnet_group_absent(name, tags=None, region=None, key=None, keyid=None, profile=None)
salt.states.boto_rds.subnet_group_present(name, description, subnet_ids=None, subnet_names=None, tags=None, region=None, key=None, keyid=None, profile=None)

Ensure DB subnet group exists.

name
The name for the DB subnet group. This value is stored as a lowercase string.
subnet_ids
A list of the EC2 Subnet IDs for the DB subnet group. Either subnet_ids or subnet_names must be provided.
subnet_names
A list of The EC2 Subnet names for the DB subnet group. Either subnet_ids or subnet_names must be provided.
description
Subnet group description.
tags
A list of tags.
region
Region to connect to.
key
Secret key to be used.
keyid
Access key to be used.
profile
A dict with region, key and keyid, or a pillar key (string) that contains a dict with region, key and keyid.