community.digitalocean.digitalocean – DigitalOcean Inventory Plugin¶
Note
This plugin is part of the community.digitalocean collection (version 1.1.1).
To install it use: ansible-galaxy collection install community.digitalocean
.
To use it in a playbook, specify: community.digitalocean.digitalocean
.
New in version 1.1.0: of community.digitalocean
Synopsis¶
DigitalOcean (DO) inventory plugin.
Acquires droplet list from DO API.
Uses configuration file that ends with ‘(do_hosts|digitalocean|digital_ocean).(yaml|yml)’.
Parameters¶
Parameter | Choices/Defaults | Configuration | Comments |
---|---|---|---|
api_token
string
/ required
|
env:DO_API_TOKEN
|
DigitalOcean OAuth token.
aliases: oauth_token |
|
attributes
list
/ elements=string
|
Default: ["id", "name", "networks", "region", "size_slug"]
|
Droplet attributes to add as host vars to each inventory host. Check out the DO API docs for full list of attributes at https://developers.digitalocean.com/documentation/v2/#list-all-droplets.
|
|
cache
boolean
|
|
ini entries:
[inventory]
env:ANSIBLE_INVENTORY_CACHE
|
Toggle to enable/disable the caching of the inventory's source data, requires a cache plugin setup to work.
|
cache_connection
string
|
ini entries:
[defaults]
[inventory]
env:ANSIBLE_CACHE_PLUGIN_CONNECTION
env:ANSIBLE_INVENTORY_CACHE_CONNECTION
|
Cache connection data or path, read cache plugin documentation for specifics.
|
|
cache_plugin
string
|
Default: "memory"
|
ini entries:
[defaults]
[inventory]
env:ANSIBLE_CACHE_PLUGIN
env:ANSIBLE_INVENTORY_CACHE_PLUGIN
|
Cache plugin to use for the inventory's source data.
|
cache_prefix
string
|
Default: "ansible_inventory_"
|
ini entries:
[default]
[inventory]
env:ANSIBLE_CACHE_PLUGIN_PREFIX
env:ANSIBLE_INVENTORY_CACHE_PLUGIN_PREFIX
|
Prefix to use for cache plugin files/tables
|
cache_timeout
integer
|
Default: 3600
|
ini entries:
[defaults]
[inventory]
env:ANSIBLE_CACHE_PLUGIN_TIMEOUT
env:ANSIBLE_INVENTORY_CACHE_TIMEOUT
|
Cache duration in seconds
|
compose
dictionary
|
Default: {}
|
Create vars from jinja2 expressions.
|
|
groups
dictionary
|
Default: {}
|
Add hosts to group based on Jinja2 conditionals.
|
|
keyed_groups
list
/ elements=string
|
Default: []
|
Add hosts to group based on the values of a variable.
|
|
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 |
||
pagination
integer
|
Default: 200
|
Maximum droplet objects per response page.
If the number of droplets related to the account exceeds this value, the query will be broken to multiple requests (pages).
DigitalOcean currently allows a maximum of 200.
|
|
plugin
string
/ required
|
|
The name of the DigitalOcean Inventory Plugin, this should always be
community.digitalocean.digitalocean . |
|
strict
boolean
|
|
If
yes make invalid entries a fatal error, otherwise skip and continue.Since it is possible to use facts in the expressions they might not always be available and we ignore those errors by default.
|
|
timeout
integer
|
Default: 30
|
The timeout in seconds used for polling DigitalOcean's API.
|
|
validate_certs
boolean
|
|
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. |
|
var_prefix
string
|
Default: "do_"
|
Prefix of generated varible names (e.g.
tags -> do_tags ) |
Examples¶
# Using keyed groups and compose for hostvars
plugin: community.digitalocean.digitalocean
api_token: "{{ api_token }}"
attributes:
- id
- name
- memory
- vcpus
- disk
- size
- image
- networks
- volume_ids
- tags
- region
keyed_groups:
- key: do_region.slug
prefix: 'region'
separator: '_'
- key: do_tags | lower
prefix: ''
separator: ''
compose:
ansible_host: do_networks.v4 | selectattr('type','eq','public')
| map(attribute='ip_address') | first
class: do_size.description | lower
distro: do_image.distribution | lower
Authors¶
Janos Gerzson (@grzs)
Tadej Borovšak (@tadeboro)