community.hrobot.robot inventory – Hetzner Robot inventory source
Примечание
Этот плагин инвентаризации входит в состав коллекции community.hrobot (версия 2.0.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 | Используется совместно с keyed_groups. По умолчанию, имя группы с ключом, для которой не указан префикс или разделитель, начинается с подчеркивания. Это потому, что по умолчанию префикс равен “” и разделитель равен “_”. Установите это значение в False, чтобы не использовать ведущее подчеркивание (или другой разделитель), если префикс не указан. Если имя группы получено из отображения, разделитель всё равно используется для конкатенации элементов. Чтобы вообще не использовать разделитель в имени группы, установите разделитель для группы с ключом в пустую строку. Варианты:
|
plugin string / обязательно | Токен, который гарантирует, что это файл источника для плагина. Варианты:
|
simple_filters dictionary | Словарь пар значений фильтров. Доступные фильтры перечислены здесь как ключи сервера, такие как См. https://robot.your-server.de/doc/webservice/en.html#get-server для всех значений, которые можно использовать. Этот параметр раньше назывался По умолчанию: |
strict boolean | Если Поскольку в выражениях можно использовать факты, они могут не всегда быть доступны, и мы игнорируем эти ошибки по умолчанию. Варианты:
|
use_extra_vars boolean добавлено в ansible-core 2.11 | Объединить дополнительные переменные в доступные переменные для композиции (высший приоритет). Варианты:
Настройка:
|
Примечания
Примечание
- Параметры
hetzner_userиhetzner_passwordмогут быть шаблонизированы.
Примеры
# 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 didn't 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–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/hrobot/robot_inventory.html