Spec-Zone.ru › Ansible

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

Включает или отключает кэширование исходных данных инвентаризации. Для работы требуется настроенный плагин кэширования.

Варианты:

  • false ← (по умолчанию)
  • true

Конфигурация:

  • Параметр INI:

    [inventory]
    cache = false
    
  • Переменная окружения: ANSIBLE_INVENTORY_CACHE

cache_connection

string

Данные для подключения к кэшу или путь к нему; подробности см. в документации плагина кэширования.

Конфигурация:

  • Параметры INI:

    [defaults]
    fact_caching_connection = VALUE
    
    [inventory]
    cache_connection = VALUE
    
  • Переменная окружения: ANSIBLE_CACHE_PLUGIN_CONNECTION
  • Переменная окружения: ANSIBLE_INVENTORY_CACHE_CONNECTION

cache_plugin

string

Плагин кэширования исходных данных инвентаризации.

По умолчанию: "memory"

Конфигурация:

  • Параметры INI:

    [defaults]
    fact_caching = memory
    
    [inventory]
    cache_plugin = memory
    
  • Переменная окружения: ANSIBLE_CACHE_PLUGIN
  • Переменная окружения: ANSIBLE_INVENTORY_CACHE_PLUGIN

cache_prefix

string

Префикс для файлов/таблиц плагина кэширования.

По умолчанию: "ansible_inventory_"

Конфигурация:

  • Параметры INI:

    [defaults]
    fact_caching_prefix = ansible_inventory_
    
    [inventory]
    cache_prefix = ansible_inventory_
    
  • Переменная окружения: ANSIBLE_CACHE_PLUGIN_PREFIX
  • Переменная окружения: ANSIBLE_INVENTORY_CACHE_PLUGIN_PREFIX

cache_timeout

integer

Время кэширования в секундах.

По умолчанию: 3600

Конфигурация:

  • Параметры INI:

    [defaults]
    fact_caching_timeout = 3600
    
    [inventory]
    cache_timeout = 3600
    
  • Переменная окружения: ANSIBLE_CACHE_PLUGIN_TIMEOUT
  • Переменная окружения: ANSIBLE_INVENTORY_CACHE_TIMEOUT

compose

dictionary

Создаёт переменные на основе выражений Jinja2.

По умолчанию: {}

filters

list / elements=dictionary

добавлено в community.hrobot 2.0.0

Список фильтров включения/исключения, позволяющий выбирать или исключать узлы из этой инвентаризации.

Фильтры обрабатываются по порядку до первого совпадения с filters[].exclude или filters[].include. При совпадении с filters[].exclude узел исключается, а при совпадении с filters[].include — включается. Если ни один фильтр не совпал, узел включается.

exclude

string

Условие Jinja2. Если оно выполняется для узла, этот узел исключается.

Можно указать только один из параметров filters[].exclude и filters[].include.

include

string

Условие Jinja2. Если оно выполняется для узла, этот узел включается.

Можно указать только один из параметров filters[].exclude и filters[].include.

groups

dictionary

Добавляет узлы в группы на основе условий Jinja2.

По умолчанию: {}

hetzner_password

string / обязательный

Пароль пользователя веб-службы Robot.

Конфигурация:

  • Переменная окружения: HROBOT_API_PASSWORD

hetzner_user

string / обязательный

Имя пользователя веб-службы Robot.

Конфигурация:

  • Переменная окружения: HROBOT_API_USER

keyed_groups

list / elements=dictionary

Добавляет узлы в группы на основе значений переменной.

По умолчанию: []

default_value

string

добавлено в ansible-core 2.12

Значение по умолчанию, если значение переменной узла равно None или является пустой строкой.

Этот параметр несовместим с keyed_groups[].trailing_separator.

key

string

Ключ входного словаря, используемый для создания групп.

parent_group

string

Родительская группа для группы, созданной по ключу.

prefix

string

Имя группы, созданной по ключу, будет начинаться с этого префикса.

По умолчанию: ""

separator

string

Разделитель, используемый для формирования имени группы, созданной по ключу.

По умолчанию: "_"

trailing_separator

boolean

добавлено в ansible-core 2.12

Установите значение false, чтобы опустить keyed_groups[].separator после переменной узла, если её значение равно None или является пустой строкой.

Этот параметр несовместим с keyed_groups[].default_value.

Варианты:

  • false
  • true ← (по умолчанию)

leading_separator

boolean

добавлено в ansible-core 2.11

Используйте вместе с keyed_groups.

По умолчанию имя группы, созданной по ключу, для которой не задан префикс или разделитель, начинается с символа подчёркивания.

Это связано с тем, что префикс по умолчанию — "", а разделитель по умолчанию — "_".

Установите значение false, чтобы опустить начальный символ подчёркивания (или другой разделитель), если префикс не задан.

Если имя группы формируется из соответствия, разделитель всё равно используется для объединения элементов.

Чтобы полностью отказаться от разделителя в имени группы, задайте для группы, созданной по ключу, пустую строку в качестве разделителя.

Варианты:

  • false
  • true ← (по умолчанию)

plugin

string / обязательный

Токен, подтверждающий, что этот файл является файлом источника для плагина.

Варианты:

  • "community.hrobot.robot"

rate_limit_retry_timeout

integer

добавлено в community.hrobot 2.1.0

Время ожидания (в секундах) при получении ошибок превышения ограничения частоты запросов.

Установите значение 0, чтобы отключить повторные попытки.

Задайте отрицательное значение, например -1, чтобы повторять попытки бесконечно.

По умолчанию: -1

simple_filters

dictionary

Словарь пар «фильтр — значение».

Доступные фильтры перечислены здесь как ключи сервера, например status или server_ip.

Список всех доступных значений см. на странице https://robot.your-server.de/doc/webservice/en.html#get-server.

До community.hrobot 2.0.0 этот параметр назывался filters. В community.hrobotdns 1.9.0 его переименовали из filters в simple_filters, а старое имя оставалось доступным как псевдоним до community.hrobot 2.0.0. Теперь filters используется для другой цели.

По умолчанию: {}

strict

boolean

Если значение равно yes, неверные записи приводят к фатальной ошибке; в противном случае они пропускаются, и выполнение продолжается.

Поскольку в выражениях можно использовать факты, они могут быть доступны не всегда; по умолчанию такие ошибки игнорируются.

Варианты:

  • false ← (по умолчанию)
  • true

use_extra_vars

boolean

добавлено в ansible-core 2.11

Объединяет дополнительные переменные с доступными переменными для композиции (наивысший приоритет).

Варианты:

  • false ← (по умолчанию)
  • true

Конфигурация:

  • Параметр INI:

    [inventory_plugins]
    use_extra_vars = false
    
  • Переменная окружения: ANSIBLE_INVENTORY_USE_EXTRA_VARS

Примечание

Для каждого типа записей конфигурации, указанного выше (переменная 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

Авторы

  • Oleksandr Stepanov (@alexandrst88)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Получить помощь (Hetzner Robot)
  • Сообщить об ошибке
  • Предложить новую функцию
  • Связь

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API