New in version 1.3.
Create/delete a droplet in DigitalOcean and optionally waits for it to be ‘running’, or deploy an SSH key.
parameter | required | default | choices | comments |
---|---|---|---|---|
api_key | no | Digital Ocean api key. | ||
client_id | no | Digital Ocean manager id. | ||
command | no | droplet |
|
Which target you want to operate on. |
id | no | Numeric, the droplet id you want to operate on. | ||
image_id | no | Numeric, this is the id of the image you would like the droplet created with. | ||
name | no | String, this is the name of the droplet - must be formatted by hostname rules, or the name of a SSH key. | ||
private_networking | no | no |
|
Bool, add an additional, private network interface to droplet for inter-droplet communication (added in Ansible 1.4) |
region_id | no | Numeric, this is the id of the region you would like your server | ||
size_id | no | Numeric, this is the id of the size you would like the droplet created at. | ||
ssh_key_ids | no | Optional, comma separated list of ssh_key_ids that you would like to be added to the server | ||
ssh_pub_key | no | The public SSH key you want to add to your account. | ||
state | no | present |
|
Indicate desired state of the target. |
unique_name | no | no |
|
Bool, require unique hostnames. By default, digital ocean allows multiple hosts with the same name. Setting this to "yes" allows only one host per name. Useful for idempotence. (added in Ansible 1.4) |
virtio | no | yes |
|
Bool, turn on virtio driver in droplet for improved network and storage I/O (added in Ansible 1.4) |
wait | no | yes |
|
Wait for the droplet to be in state 'running' before returning. If wait is "no" an ip_address may not be returned. |
wait_timeout | no | 300 | How long before wait gives up, in seconds. |
Note
Requires dopy
# Ensure a SSH key is present
# If a key matches this name, will return the ssh key id and changed = False
# If no existing key matches this name, a new key is created, the ssh key id is returned and changed = False
- digital_ocean: >
state=present
command=ssh
name=my_ssh_key
ssh_pub_key='ssh-rsa AAAA...'
client_id=XXX
api_key=XXX
# Create a new Droplet
# Will return the droplet details including the droplet id (used for idempotence)
- digital_ocean: >
state=present
command=droplet
name=mydroplet
client_id=XXX
api_key=XXX
size_id=1
region_id=2
image_id=3
wait_timeout=500
register: my_droplet
- debug: msg="ID is {{ my_droplet.droplet.id }}"
- debug: msg="IP is {{ my_droplet.droplet.ip_address }}"
# Ensure a droplet is present
# If droplet id already exist, will return the droplet details and changed = False
# If no droplet matches the id, a new droplet will be created and the droplet details (including the new id) are returned, changed = True.
- digital_ocean: >
state=present
command=droplet
id=123
name=mydroplet
client_id=XXX
api_key=XXX
size_id=1
region_id=2
image_id=3
wait_timeout=500
# Create a droplet with ssh key
# The ssh key id can be passed as argument at the creation of a droplet (see ssh_key_ids).
# Several keys can be added to ssh_key_ids as id1,id2,id3
# The keys are used to connect as root to the droplet.
- digital_ocean: >
state=present
ssh_key_ids=id1,id2
name=mydroplet
client_id=XXX
api_key=XXX
size_id=1
region_id=2
image_id=3
Note
Two environment variables can be used, DO_CLIENT_ID and DO_API_KEY.