# digital_ocean_droplet – Create and delete a DigitalOcean droplet

New in version 2.8.

- Synopsis

- Requirements

- Parameters

- Examples

- Return Values

- Status

## Synopsis

- Create and delete a droplet in DigitalOcean and optionally wait for it to be active.

## Requirements

The below requirements are needed on the host that executes this module.

- python >= 2.6

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---

backups
boolean

Choices:
- no ←
- yes

indicates whether automated backups should be enabled.

id - |  | Numeric, the droplet id you want to operate on. aliases: droplet_id
image - |  | This is the slug of the image you would like the droplet created with. aliases: image_id

ipv6
boolean

Choices:
- no ←
- yes

enable IPv6 for your droplet.

monitoring
boolean

Choices:
- no ←
- yes

indicates whether to install the DigitalOcean agent for monitoring.

name - |  | String, this is the name of the droplet - must be formatted by hostname rules.
oauth_token - / required |  | DigitalOcean OAuth token. Can be specified in `DO_API_KEY`, `DO_API_TOKEN`, or `DO_OAUTH_TOKEN` environment variables aliases: API_TOKEN

private_networking
boolean

Choices:
- no ←
- yes

add an additional, private network interface to droplet for inter-droplet communication.

region - |  | This is the slug of the region you would like your server to be created in. aliases: region_id
size - |  | This is the slug of the size you would like the droplet created with. aliases: size_id
ssh_keys - |  | array of SSH key (numeric) ID that you would like to be added to the server.

state
-

Choices:
- present ←
- absent

Indicate desired state of the target.

tags - |  | List, A list of tag names as strings to apply to the Droplet after it is created. Tag names can either be existing or new tags.

unique_name
boolean

Choices:
- no ←
- yes

require unique hostnames. By default, DigitalOcean allows multiple hosts with the same name. Setting this to "yes" allows only one host per name. Useful for idempotence.

user_data - |  | opaque blob of data which is made available to the droplet
volumes - |  | List, A list including the unique string identifier for each Block Storage volume to be attached to the Droplet.

wait
boolean

Choices:
- no
- yes ←

Wait for the droplet to be active before returning. If wait is "no" an ip_address may not be returned.

wait_timeout - | Default: 120 | How long before wait gives up, in seconds, when creating a droplet.

## Examples

    - name: create a new droplet
      digital_ocean_droplet:
        state: present
        name: mydroplet
        oauth_token: XXX
        size: 2gb
        region: sfo1
        image: ubuntu-16-04-x64
        wait_timeout: 500
      register: my_droplet

    - debug:
        msg: "ID is {{ my_droplet.data.droplet.id }}, IP is {{ my_droplet.data.ip_address }}"

    - name: ensure a droplet is present
      digital_ocean_droplet:
        state: present
        id: 123
        name: mydroplet
        oauth_token: XXX
        size: 2gb
        region: sfo1
        image: ubuntu-16-04-x64
        wait_timeout: 500

## Return Values

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

Key | Returned | Description
--- | --- | ---

data
dictionary

changed

a DigitalOcean Droplet
Sample:
{'ip_address': '104.248.118.172', 'ipv6_address': '2604:a880:400:d1::90a:6001', 'private_ipv4_address': '10.136.122.141', 'droplet': {'id': 3164494, 'name': 'example.com', 'memory': 512, 'vcpus': 1, 'disk': 20, 'locked': True, 'status': 'new', 'kernel': {'id': 2233, 'name': 'Ubuntu 14.04 x64 vmlinuz-3.13.0-37-generic', 'version': '3.13.0-37-generic'}, 'created_at': '2014-11-14T16:36:31Z', 'features': ['virtio'], 'backup_ids': [], 'snapshot_ids': [], 'image': {}, 'volume_ids': [], 'size': {}, 'size_slug': '512mb', 'networks': {}, 'region': {}, 'tags': ['web']}}

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]

- This module is maintained by the Ansible Community. [community]

### Authors

- Gurchet Rai (@gurch101)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.