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.ymlorrobot.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_dccontains 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  statusorserver_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. | |
| plugin  string / required  | 
 | Token that ensures this is a source file for the plugin. | |
| strict  boolean  | 
 | If  yesmake 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. | 
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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
    https://docs.ansible.com/ansible/2.10/collections/community/hrobot/robot_inventory.html