community.hrobot.robot inventory — источник инвентаризации Hetzner Robot
Примечание
Этот плагин инвентаризации входит в коллекцию community.hrobot (версия 2.7.2).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.hrobot.
Чтобы использовать её в плейбуке, укажите: community.hrobot.robot.
Добавлено в community.hrobot 1.1.0
Краткое описание
- Получает сведения о серверах из API Hetzner Robot.
- Использует файл конфигурации YAML с расширением
robot.ymlилиrobot.yaml. - Плагин инвентаризации добавляет в инвентаризацию сервера все значения из https://robot.your-server.de/doc/webservice/en.html#get-server, предваряя их значением
hrobot_. Например, переменнаяhrobot_dcсодержит данные о дата-центре, в котором расположен сервер.
Параметры
Параметр | Комментарии |
|---|---|
cache boolean | Включает или отключает кэширование исходных данных инвентаризации. Для работы требуется настроенный плагин кэширования. Варианты:
Конфигурация:
|
cache_connection string | Данные для подключения к кэшу или путь к нему; подробности см. в документации плагина кэширования. Конфигурация:
|
cache_plugin string | Плагин кэширования исходных данных инвентаризации. По умолчанию: Конфигурация:
|
cache_prefix string | Префикс для файлов/таблиц плагина кэширования. По умолчанию: Конфигурация:
|
cache_timeout integer | Время кэширования в секундах. По умолчанию: Конфигурация:
|
compose dictionary | Создаёт переменные на основе выражений Jinja2. По умолчанию: |
filters list / elements=dictionary добавлено в community.hrobot 2.0.0 | Список фильтров включения/исключения, позволяющий выбирать или исключать узлы из этой инвентаризации. Фильтры обрабатываются по порядку до первого совпадения с |
|
exclude string |
Условие Jinja2. Если оно выполняется для узла, этот узел исключается. Можно указать только один из параметров |
|
include string |
Условие Jinja2. Если оно выполняется для узла, этот узел включается. Можно указать только один из параметров |
groups dictionary | Добавляет узлы в группы на основе условий Jinja2. По умолчанию: |
hetzner_password string / обязательный | |
hetzner_user string / обязательный | |
keyed_groups list / elements=dictionary | Добавляет узлы в группы на основе значений переменной. По умолчанию: |
|
default_value string добавлено в ansible-core 2.12 |
Значение по умолчанию, если значение переменной узла равно Этот параметр несовместим с |
|
key string |
Ключ входного словаря, используемый для создания групп. |
|
parent_group string |
Родительская группа для группы, созданной по ключу. |
|
prefix string |
Имя группы, созданной по ключу, будет начинаться с этого префикса. По умолчанию: |
|
separator string |
Разделитель, используемый для формирования имени группы, созданной по ключу. По умолчанию: |
|
trailing_separator boolean добавлено в ansible-core 2.12 |
Установите значение Этот параметр несовместим с Варианты:
|
leading_separator boolean добавлено в ansible-core 2.11 | Используйте вместе с По умолчанию имя группы, созданной по ключу, для которой не задан префикс или разделитель, начинается с символа подчёркивания. Это связано с тем, что префикс по умолчанию — Установите значение Если имя группы формируется из соответствия, разделитель всё равно используется для объединения элементов. Чтобы полностью отказаться от разделителя в имени группы, задайте для группы, созданной по ключу, пустую строку в качестве разделителя. Варианты:
|
plugin string / обязательный | Токен, подтверждающий, что этот файл является файлом источника для плагина. Варианты:
|
rate_limit_retry_timeout integer добавлено в community.hrobot 2.1.0 | Время ожидания (в секундах) при получении ошибок превышения ограничения частоты запросов. Установите значение Задайте отрицательное значение, например По умолчанию: |
simple_filters dictionary | Словарь пар «фильтр — значение». Доступные фильтры перечислены здесь как ключи сервера, например Список всех доступных значений см. на странице https://robot.your-server.de/doc/webservice/en.html#get-server. До community.hrobot 2.0.0 этот параметр назывался По умолчанию: |
strict boolean | Если значение равно Поскольку в выражениях можно использовать факты, они могут быть доступны не всегда; по умолчанию такие ошибки игнорируются. Варианты:
|
use_extra_vars boolean добавлено в ansible-core 2.11 | Объединяет дополнительные переменные с доступными переменными для композиции (наивысший приоритет). Варианты:
Конфигурация:
|
Примечание
Для каждого типа записей конфигурации, указанного выше (переменная Ansible, переменная окружения и т. д.), приоритет повышается по мере продвижения по списку. Например, переменная, расположенная ниже в списке, переопределяет переменную, расположенную выше. Типы записей также упорядочены по приоритету от низкого к высокому. Например, запись ansible.cfg (расположенная выше в списке) переопределяется переменной Ansible (расположенной ниже в списке).
Примечания
Примечание
- Для параметров
hetzner_userиhetzner_passwordможно использовать шаблоны. - На этом этапе инвентаризация ещё не завершена, поэтому автоматически заполняемые группы
allиungroupedбудут содержать только то, что в них явно добавили предыдущие источники инвентаризации. - Во время построения инвентаризации динамические «магические переменные» недоступны. Например,
groupsиhostvarsещё не существуют.
Примеры
---
# Fetch all hosts in Hetzner Robot
plugin: community.hrobot.robot
# Filters all servers in ready state
filters:
status: ready
---
# Example showing encrypted credentials and using filters
# (This assumes that Mozilla sops was used to encrypt keys/hetzner.sops.yaml, which contains two values
# hetzner_username and hetzner_password. Needs the community.sops collection to decode that file.)
plugin: community.hrobot.robot
hetzner_user: '{{ (lookup("community.sops.sops", "keys/hetzner.sops.yaml") | from_yaml).hetzner_username }}'
hetzner_password: '{{ (lookup("community.sops.sops", "keys/hetzner.sops.yaml") | from_yaml).hetzner_password }}'
filters:
# Accept all servers in FSN1-DC1 and FSN1-DC2
- include: >-
hrobot_dc in ["FSN1-DC1", "FSN1-DC2"]
# Exclude all servers that did not match any of the above filters
- exclude: true
---
# Example using constructed features to create groups
plugin: community.hrobot.robot
simple_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
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/hrobot/robot_inventory.html