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.
|
|
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.
|
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)