community.digitalocean.digital_ocean_database – Create and delete a DigitalOcean database

Note

This plugin is part of the community.digitalocean collection (version 1.9.0).

To install it use: ansible-galaxy collection install community.digitalocean.

To use it in a playbook, specify: community.digitalocean.digital_ocean_database.

New in version 1.3.0: of community.digitalocean

Synopsis

  • Create and delete a database in DigitalOcean and optionally wait for it to be online.

  • DigitalOcean’s managed database service simplifies the creation and management of highly available database clusters.

  • Currently, it offers support for PostgreSQL, Redis, MySQL, and MongoDB.

Parameters

Parameter Choices/Defaults Comments
engine
string / required
    Choices:
  • pg
  • mysql
  • redis
  • mongodb
A slug representing the database engine used for the cluster.
The possible values are pg for PostgreSQL, mysql for MySQL, redis for Redis, and mongodb for MongoDB.
id
integer
A unique ID that can be used to identify and reference a database cluster.

aliases: database_id
name
string / required
A unique, human-readable name for the database cluster.
num_nodes
integer
    Choices:
  • 1
  • 2
  • 3
Default:
1
The number of nodes in the database cluster.
Valid choices are 1, 2 or 3.
oauth_token
string
DigitalOcean OAuth token.
There are several other environment variables which can be used to provide this value.
i.e., - 'DO_API_TOKEN', 'DO_API_KEY', 'DO_OAUTH_TOKEN' and 'OAUTH_TOKEN'

aliases: api_token
private_network_uuid
string
A string specifying the UUID of the VPC to which the database cluster is assigned.
region
string / required
The slug identifier for the region where the database cluster is located.

aliases: region_id
size
string / required
The slug identifier representing the size of the nodes in the database cluster.

aliases: size_id
state
string
    Choices:
  • present ←
  • absent
Indicates the desired state of the target.
tags
list / elements=string
An array of tags that have been applied to the database cluster.
timeout
integer
Default:
30
The timeout in seconds used for polling DigitalOcean's API.
validate_certs
boolean
    Choices:
  • no
  • yes ←
If set to no, the SSL certificates will not be validated.
This should only set to no used on personally controlled sites using self-signed certificates.
version
string
A string representing the version of the database engine in use for the cluster.
For pg, versions are 10, 11 and 12.
For mysql, version is 8.
For redis, version is 5.
For mongodb, version is 4.
wait
boolean
    Choices:
  • no
  • yes ←
Wait for the database to be online before returning.
wait_timeout
integer
Default:
600
How long before wait gives up, in seconds, when creating a database.

Examples

- name: Create a Redis database
  community.digitalocean.digital_ocean_database:
    oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_KEY') }}"
    state: present
    name: testdatabase1
    engine: redis
    size: db-s-1vcpu-1gb
    region: nyc1
    num_nodes: 1
  register: my_database

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description
data
dictionary
success
A DigitalOcean database

Sample:
{'database': {'connection': {'database': '', 'host': 'testdatabase1-do-user-3097135-0.b.db.ondigitalocean.com', 'password': 'REDACTED', 'port': 25061, 'protocol': 'rediss', 'ssl': True, 'uri': 'rediss://default:[email protected]:25061', 'user': 'default'}, 'created_at': '2021-04-21T15:41:14Z', 'db_names': None, 'engine': 'redis', 'id': '37de10e4-808b-4f4b-b25f-7b5b3fd194ac', 'maintenance_window': {'day': 'monday', 'hour': '11:33:47', 'pending': False}, 'name': 'testdatabase1', 'num_nodes': 1, 'private_connection': {'database': '', 'host': 'private-testdatabase1-do-user-3097135-0.b.db.ondigitalocean.com', 'password': 'REDIS', 'port': 25061, 'protocol': 'rediss', 'ssl': True, 'uri': 'rediss://default:[email protected]cean.com:25061', 'user': 'default'}, 'private_network_uuid': '0db3519b-9efc-414a-8868-8f2e6934688c', 'region': 'nyc1', 'size': 'db-s-1vcpu-1gb', 'status': 'online', 'tags': None, 'users': None, 'version': '6'}}


Authors

  • Mark Mercado (@mamercad)