Инвентаризация vultr.cloud.vultr — получение списка экземпляров через API Vultr v2
Примечание
Этот плагин инвентаризации входит в коллекцию vultr.cloud (версия 1.14.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install vultr.cloud.
Чтобы использовать коллекцию в плейбуке, укажите: vultr.cloud.vultr.
Добавлено в vultr.cloud 1.4.0
Краткое описание
- Плагин инвентаризации Vultr.
- Получает список экземпляров через API Vultr v2.
- Плагин настраивается с помощью файлов, имена которых заканчиваются на «(vultr|vultr_hosts|vultr_instances).(yaml|yml)»
Параметры
Параметр | Комментарии |
|---|---|
api_endpoint строка | URL конечной точки API (без завершающей косой черты). Резервная переменная окружения По умолчанию: |
api_key строка / обязательный | Ключ API Vultr. Резервная переменная окружения |
api_results_per_page целое число добавлено в vultr.cloud 1.14.0 | При получении большого количества ресурсов укажите, сколько результатов должно возвращаться за один вызов API. Этот параметр не определяет общее количество возвращаемых результатов: в соответствии с другими фильтрами возвращаются все ресурсы. Максимальное значение для API Vultr — 500. Резервная переменная окружения По умолчанию: |
api_retries целое число | Количество повторных попыток в случае, если API Vultr возвращает код ошибки HTTP, например: 429 — слишком много запросов; 500 — внутренняя ошибка сервера; 504 — превышено время ожидания ответа шлюза. Резервная переменная окружения По умолчанию: |
api_retry_max_delay целое число | Экспоненциальная задержка между повторными попытками в секундах увеличивается до этого максимального значения. Резервная переменная окружения По умолчанию: |
api_timeout целое число | Время ожидания ответа HTTP от API Vultr. Резервная переменная окружения По умолчанию: |
attributes список / элементы=строка | Атрибуты экземпляра, добавляемые в качестве переменных узла каждому узлу, добавленному в инвентаризацию. Допустимые значения см. в документации https://www.vultr.com/api/#operation/list-instances. Атрибут internal_ip добавлен в версии 1.10.0. По умолчанию: |
cache логическое значение | Включает или отключает кэширование исходных данных инвентаризации. Для работы требуется настроить плагин кэширования. Варианты:
Конфигурация:
|
cache_connection строка | Данные подключения к кэшу или путь к нему. Подробнее см. в документации плагина кэширования. Конфигурация:
|
cache_plugin строка | Плагин кэширования исходных данных инвентаризации. По умолчанию: Конфигурация:
|
cache_prefix строка | Префикс для файлов/таблиц плагина кэширования. По умолчанию: Конфигурация:
|
cache_timeout целое число | Срок хранения кэша в секундах. По умолчанию: Конфигурация:
|
compose словарь | Создаёт переменные на основе выражений Jinja2. По умолчанию: |
filters список / элементы=строка | Фильтрует узлы с помощью шаблонов Jinja2. Если параметр не указан, в инвентаризацию добавляются все узлы. По умолчанию: |
groups словарь | Добавляет узлы в группы на основе условий Jinja2. По умолчанию: |
instance_type строка добавлено в vultr.cloud 1.8.0 | Тип экземпляра. Варианты:
|
keyed_groups список / элементы=словарь | Добавляет узлы в группы на основе значений переменной. По умолчанию: |
|
default_value строка добавлено в ansible-core 2.12 |
Значение по умолчанию, если значение переменной узла равно Этот параметр несовместим с |
|
key строка |
Ключ входного словаря, используемый для создания групп. |
|
parent_group строка |
Родительская группа для группы, созданной по ключу. |
|
prefix строка |
Имя группы, созданной по ключу, будет начинаться с этого префикса. По умолчанию: |
|
separator строка |
Разделитель, используемый при формировании имени группы, созданной по ключу. По умолчанию: |
|
trailing_separator логическое значение добавлено в ansible-core 2.12 |
Задайте для этого параметра значение Этот параметр несовместим с Варианты:
|
leading_separator логическое значение добавлено в ansible-core 2.11 | Используется вместе с По умолчанию имя группы, созданной по ключу без указанного префикса или разделителя, начинается с символа подчёркивания. Это происходит потому, что префикс по умолчанию — Задайте для этого параметра значение Если имя группы получено из отображения, разделитель по-прежнему используется для объединения элементов. Чтобы вовсе не использовать разделитель в имени группы, задайте для группы, созданной по ключу, пустую строку в качестве разделителя. Варианты:
|
plugin строка / обязательный | Имя плагина инвентаризации Vultr. Всегда должно быть указано Варианты:
|
strict логическое значение | Если задано значение Поскольку в выражениях можно использовать факты, они могут быть доступны не всегда; по умолчанию такие ошибки игнорируются. Варианты:
|
use_extra_vars логическое значение добавлено в ansible-core 2.11 | Добавляет дополнительные переменные к доступным для композиции переменным (наивысший приоритет). Варианты:
Конфигурация:
|
validate_certs логическое значение | Проверять сертификаты SSL API Vultr. Варианты:
|
variable_prefix строка | Префикс создаваемых переменных (например, По умолчанию: |
Примечание
Для записей конфигурации, перечисленных выше для каждого типа записей (переменная Ansible, переменная окружения и т. д.), указан порядок приоритета от низкого к высокому. Например, переменная, расположенная ниже в списке, переопределяет переменную, расположенную выше. Типы записей также расположены в порядке приоритета от низкого к высокому. Например, запись ansible.cfg (расположенная выше в списке) переопределяется переменной Ansible (расположенной ниже в списке).
Примечания
Примечание
- См. также документацию по API: https://www.vultr.com/api/.
- На этом этапе инвентаризация ещё не завершена, поэтому автоматически заполненные группы
allиungroupedбудут отражать только те данные, которые в них явно добавили предыдущие источники инвентаризации. - Во время построения инвентаризации «магические переменные» времени выполнения недоступны. Например, переменные
groupsиhostvarsещё не существуют. - См. также документацию по API: https://www.vultr.com/api/.
Примеры
---
# File endings vultr{,_{hosts,instances}}.y{,a}ml
# All configuration done via environment variables:
plugin: vultr.cloud.vultr
# Grouping and filtering configuration in inventory file
plugin: vultr.cloud.vultr
api_key: '{{ lookup("pipe"), "./get_vultr_api_key.sh" }}'
keyed_groups:
- key: vultr_tags | map('lower')
prefix: ''
separator: ''
filters:
- '"vpc" in vultr_tags'
- 'vultr_plan == "vc2-2c-4gb"'
# Unless you can connect to your servers via it's vultr label,
# we suggest setting ansible_host with compose:
plugin: vultr.cloud.vultr
compose:
ansible_host: vultr_main_ip
# Respectively for IPv6:
plugin: vultr.cloud.vultr
compose:
ansible_host: vultr_v6_main_ip
# Prioritize IPv6 over IPv4 if available.
plugin: vultr.cloud.vultr
compose:
ansible_host: vultr_v6_main_ip or vultr_main_ip
# Use the internal IP
plugin: vultr.cloud.vultr
compose:
ansible_host: vultr_internal_ip
# Querying the bare metal instances
plugin: vultr.cloud.vultr
instance_type: bare_metal
Ссылки на коллекцию
© 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/vultr/cloud/vultr_inventory.html