community.hrobot.robot – Hetzner Robot inventory source
Note
This plugin is part of the community.hrobot collection (version 1.1.0).
To install it use: ansible-galaxy collection install community.hrobot
.
To use it in a playbook, specify: community.hrobot.robot
.
New in version 1.1.0: of community.hrobot
Synopsis
- Reads servers from Hetzner Robot API.
- Uses a YAML configuration file that ends with
robot.yml
orrobot.yaml
. - The inventory plugin adds all values from https://robot.your-server.de/doc/webservice/en.html#get-server prepended with
hrobot_
to the server’s inventory. For example, the variablehrobot_dc
contains the data center the server is located in.
Parameters
Parameter | Choices/Defaults | Configuration | Comments |
---|---|---|---|
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. | |
filters dictionary | Default: {} | A dictionary of filter value pairs. Available filters are listed here are keys of server like status or server_ip .See https://robot.your-server.de/doc/webservice/en.html#get-server for all values that can be used. | |
groups dictionary | Default: {} | Add hosts to group based on Jinja2 conditionals. | |
hetzner_password string / required | env:HROBOT_API_PASSWORD | The password for the Robot webservice user. | |
hetzner_user string / required | env:HROBOT_API_USER | The username for the Robot webservice user. | |
keyed_groups list / elements=string | Default: [] | Add hosts to group based on the values of a variable. | |
leading_separator boolean added in 2.11 of ansible.builtin |
| Use in conjunction with keyed_groups. By default, a keyed group that does not have a prefix or a separator provided will have a name that starts with an underscore. This is because the default prefix is "" and the default separator is "_". Set this option to False to omit the leading underscore (or other separator) if no prefix is given. If the group name is derived from a mapping the separator is still used to concatenate the items. To not use a separator in the group name at all, set the separator for the keyed group to an empty string instead. | |
plugin string / required |
| Token that ensures this is a source file for the plugin. | |
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. | |
use_extra_vars boolean added in 2.11 of ansible.builtin |
| ini entries: [inventory_plugins] env:ANSIBLE_INVENTORY_USE_EXTRA_VARS | Merge extra vars into the available variables for composition (highest precedence). |
Examples
# Fetch all hosts in Hetzner Robot plugin: community.hrobot.robot # Filters all servers in ready state filters: status: ready # Example using constructed features to create groups plugin: community.hrobot.robot filters: status: ready traffic: unlimited # keyed_groups may be used to create custom groups strict: false keyed_groups: # Add e.g. groups for every data center - key: hrobot_dc separator: "" # Use the IP address to connect to the host compose: server_name_ip: hrobot_server_name ~ '-' ~ hrobot_server_ip
Authors
- Oleksandr Stepanov (@alexandrst88)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/hrobot/robot_inventory.html