New in version 1.3.
Create/delete a droplet in DigitalOcean and optionally wait for it to be ‘running’, or deploy an SSH key.
parameter | required | default | choices | comments |
---|---|---|---|---|
api_key | no | DigitalOcean api key. | ||
backups_enabled | no | no |
|
Optional, Boolean, enables backups for your droplet. (added in Ansible 1.6) |
client_id | no | DigitalOcean 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 to be created in. | ||
size_id | no | Numeric, this is the id of the size you would like the droplet created with. | ||
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, DigitalOcean 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.