Spec-Zone.ru › Ansible

Инвентаризация 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 (без завершающей косой черты).

Резервная переменная окружения VULTR_API_ENDPOINT.

По умолчанию: "https://api.vultr.com/v2"

api_key

строка / обязательный

Ключ API Vultr.

Резервная переменная окружения VULTR_API_KEY.

api_results_per_page

целое число

добавлено в vultr.cloud 1.14.0

При получении большого количества ресурсов укажите, сколько результатов должно возвращаться за один вызов API.

Этот параметр не определяет общее количество возвращаемых результатов: в соответствии с другими фильтрами возвращаются все ресурсы.

Максимальное значение для API Vultr — 500.

Резервная переменная окружения VULTR_API_RESULTS_PER_PAGE.

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

api_retries

целое число

Количество повторных попыток в случае, если API Vultr возвращает код ошибки HTTP, например: 429 — слишком много запросов; 500 — внутренняя ошибка сервера; 504 — превышено время ожидания ответа шлюза.

Резервная переменная окружения VULTR_API_RETRIES.

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

api_retry_max_delay

целое число

Экспоненциальная задержка между повторными попытками в секундах увеличивается до этого максимального значения.

Резервная переменная окружения VULTR_API_RETRY_MAX_DELAY.

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

api_timeout

целое число

Время ожидания ответа HTTP от API Vultr.

Резервная переменная окружения VULTR_API_TIMEOUT.

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

attributes

список / элементы=строка

Атрибуты экземпляра, добавляемые в качестве переменных узла каждому узлу, добавленному в инвентаризацию.

Допустимые значения см. в документации https://www.vultr.com/api/#operation/list-instances.

Атрибут internal_ip добавлен в версии 1.10.0.

По умолчанию: ["id", "region", "label", "plan", "hostname", "main_ip", "v6_main_ip", "tags", "internal_ip"]

cache

логическое значение

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

Варианты:

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

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

  • Запись INI:

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

cache_connection

строка

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

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

  • Записи INI:

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

cache_plugin

строка

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

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

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

  • Записи INI:

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

cache_prefix

строка

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

По умолчанию: "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

целое число

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

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

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

  • Записи INI:

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

compose

словарь

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

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

filters

список / элементы=строка

Фильтрует узлы с помощью шаблонов Jinja2.

Если параметр не указан, в инвентаризацию добавляются все узлы.

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

groups

словарь

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

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

instance_type

строка

добавлено в vultr.cloud 1.8.0

Тип экземпляра.

Варианты:

  • "cloud" ← (по умолчанию)
  • "bare_metal"

keyed_groups

список / элементы=словарь

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

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

default_value

строка

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

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

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

key

строка

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

parent_group

строка

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

prefix

строка

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

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

separator

строка

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

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

trailing_separator

логическое значение

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

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

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

Варианты:

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

leading_separator

логическое значение

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

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

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

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

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

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

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

Варианты:

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

plugin

строка / обязательный

Имя плагина инвентаризации Vultr.

Всегда должно быть указано vultr.cloud.vultr.

Варианты:

  • "vultr.cloud.vultr"

strict

логическое значение

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

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

Варианты:

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

use_extra_vars

логическое значение

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

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

Варианты:

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

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

  • Запись INI:

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

validate_certs

логическое значение

Проверять сертификаты SSL API Vultr.

Варианты:

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

variable_prefix

строка

Префикс создаваемых переменных (например, id становится vultr_id).

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

Примечание

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

Авторы

  • jasites (@jasites)

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

  • Отслеживание проблем
  • Репозиторий (исходный код)

© 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

Spec-Zone.ru

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