community.hrobot.robot – Hetzner Robot inventory source

From Get docs
Ansible/docs/2.10/collections/community/hrobot/robot inventory


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 or robot.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 variable hrobot_dc contains the data center the server is located in.

Parameters

Parameter Choices/Defaults Configuration Comments

cache

boolean

  • no

  • yes

ini entries: [inventory]cache = no


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]fact_caching_connection = None

[inventory]cache_connection = None


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]fact_caching = memory

[inventory]cache_plugin = memory


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]fact_caching_prefix = ansible_inventory_

[inventory]cache_prefix = ansible_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]fact_caching_timeout = 3600

[inventory]cache_timeout = 3600


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.

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

  • community.hrobot.robot

Token that ensures this is a source file for the plugin.

strict

boolean

  • no

  • yes

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)

© 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