Spec-Zone.ru › Ansible

community.general.proxmox inventory – Источник инвентаризации Proxmox

Примечание

Этот плагин инвентаризации входит в коллекцию community.general (версия 9.5.0).

У вас, возможно, уже установлена эта коллекция, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.general. Для использования этого плагина инвентаризации требуются дополнительные компоненты, см. Требования для получения подробностей.

Для использования в книге задач укажите: community.general.proxmox.

Новое в community.general 1.2.0

  • Обзор
  • Требования
  • Параметры
  • Примеры

Обзор

  • Получение хостов инвентаризации из кластера Proxmox PVE.
  • Использует файл конфигурации в качестве источника инвентаризации, он должен заканчиваться на .proxmox.yml или .proxmox.yaml
  • Получает первый сетевой интерфейс с IP-адресом для узлов Proxmox.
  • Может получать конфигурацию LXC/QEMU как факты.

Требования

Ниже приведены требования, необходимые на локальном управляющем узле, который выполняет эту инвентаризацию.

  • requests >= 1.1

Параметры

Параметр

Комментарии

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

added in community.general 2.5.0

Создать переменные из выражений jinja2.

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

exclude_nodes

boolean

added in community.general 8.1.0

Исключить узлы proxmox и группы узлов из вывода инвентаризации.

Выборы:

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

facts_prefix

string

Префикс, применяемый к фактам конфигурации LXC/QEMU.

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

filters

list / elements=string

added in community.general 4.6.0

Список шаблонов Jinja, позволяющих фильтровать хосты.

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

group_prefix

string

Префикс, применяемый к группам Proxmox.

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

groups

dictionary

added in community.general 2.5.0

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

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

keyed_groups

list / elements=dictionary

added in community.general 2.5.0

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

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

default_value

string

added in ansible-core 2.12

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

Этот параметр взаимоисключающий с keyed_groups[].trailing_separator.

key

string

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

parent_group

string

родительская группа для ключевой группы

prefix

string

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

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

разделитель

строка

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

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

trailing_separator

логическое

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

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

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

Доступные значения:

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

leading_separator

логическое

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

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

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

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

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

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

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

Доступные значения:

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

пароль

строка

Пароль аутентификации Proxmox.

Если значение не указано в конфигурации инвентаризации, вместо него будет использовано значение переменной окружения PROXMOX_PASSWORD.

Начиная с community.general 4.7.0, вы также можете использовать шаблоны для указания значения password.

Если вы не укажете пароль, необходимо установить token_id и token_secret.

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

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

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

plugin

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

Имя этого плагина. Для распознавания плагина им необходимо всегда задавать значение community.general.proxmox.

Доступные значения:

  • "community.general.proxmox"

qemu_extended_statuses

логическое

добавлен в community.general 5.1.0

Требует want_facts быть установленным в true для работы. Это позволит вам различать статусы QEMU-виртуальных машин paused и prelaunch.

Это вводит несколько групп [с префиксом group_prefix] prelaunch и paused.

Доступные значения:

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

strict

логическое

добавлен в community.general 2.5.0

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

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

Доступные значения:

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

token_id

строка

добавлен в community.general 4.8.0

Идентификатор токена аутентификации Proxmox.

Если значение не указано в конфигурации инвентаризации, вместо него будет использовано значение переменной окружения PROXMOX_TOKEN_ID.

Для использования аутентификации по токену также необходимо указать token_secret. Если вы не укажете token_id и token_secret, необходимо указать пароль.

Убедитесь, что токену предоставлены явные разрешения pve или отключена «разделение привилегий», чтобы использовать привилегии пользователя вместо этого.

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

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

token_secret

строка

добавлен в community.general 4.8.0

Секретный токен аутентификации Proxmox.

Если значение не указано в конфигурации инвентаризации, вместо него будет использовано значение переменной окружения PROXMOX_TOKEN_SECRET.

Для использования аутентификации по токену также необходимо указать token_id. Если вы не укажете token_id и token_secret, необходимо указать пароль.

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

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

url

строка

URL-адрес кластера Proxmox.

Если значение не указано в конфигурации инвентаризации, вместо него будет использовано значение переменной окружения PROXMOX_URL.

Начиная с community.general 4.7.0, вы также можете использовать шаблоны для указания значения url.

По умолчанию: "http://localhost:8006"

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

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

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

use_extra_vars

логическое

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

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

Доступные значения:

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

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

  • Запись INI:

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

user

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

Пользователь аутентификации Proxmox.

Если значение не указано в конфигурации инвентаризации, будет использовано значение переменной окружения PROXMOX_USER.

Начиная с community.general 4.7.0, вы также можете использовать шаблоны для указания значения user.

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

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

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

validate_certs

булево

Проверка SSL-сертификата при использовании HTTPS.

Варианты:

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

want_facts

булево

Сбор фактов конфигурации LXC/QEMU.

Когда want_facts установлено в true, доступно больше деталей о состоянии QEMU VM, помимо состояний «запущен» и «остановлен». В настоящее время, если VM запущена и приостановлена, статус будет «запущен», а машина будет в группе running, но ее фактическое состояние будет «пауза». Обратитесь к qemu_extended_statuses, чтобы узнать, как получить реальный статус.

Варианты:

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

want_proxmox_nodes_ansible_host

булево

добавлен в community.general 3.0.0

Устанавливать ansible_host для узлов Proxmox.

Если установлено true (по умолчанию), будет использоваться первый доступный интерфейс. Это может отличаться от ожидаемого.

Значение по умолчанию этого параметра изменилось с true на false в community.general 6.0.0.

Варианты:

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

Примеры

# Minimal example which will not gather additional facts for QEMU/LXC guests
# By not specifying a URL the plugin will attempt to connect to the controller host on port 8006
# my.proxmox.yml
plugin: community.general.proxmox
user: ansible@pve
password: secure
# Note that this can easily give you wrong values as ansible_host. See further below for
# an example where this is set to `false` and where ansible_host is set with `compose`.
want_proxmox_nodes_ansible_host: true

# Instead of login with password, proxmox supports api token authentication since release 6.2.
plugin: community.general.proxmox
user: ci@pve
token_id: gitlab-1
token_secret: fa256e9c-26ab-41ec-82da-707a2c079829

# The secret can also be a vault string or passed via the environment variable TOKEN_SECRET.
token_secret: !vault |
          $ANSIBLE_VAULT;1.1;AES256
          62353634333163633336343265623632626339313032653563653165313262343931643431656138
          6134333736323265656466646539663134306166666237630a653363623262636663333762316136
          34616361326263383766366663393837626437316462313332663736623066656237386531663731
          3037646432383064630a663165303564623338666131353366373630656661333437393937343331
          32643131386134396336623736393634373936356332623632306561356361323737313663633633
          6231313333666361656537343562333337323030623732323833

# More complete example demonstrating the use of 'want_facts' and the constructed options
# Note that using facts returned by 'want_facts' in constructed options requires 'want_facts=true'
# my.proxmox.yml
plugin: community.general.proxmox
url: http://pve.domain.com:8006
user: ansible@pve
password: secure
want_facts: true
keyed_groups:
    # proxmox_tags_parsed is an example of a fact only returned when 'want_facts=true'
  - key: proxmox_tags_parsed
    separator: ""
    prefix: group
groups:
  webservers: "'web' in (proxmox_tags_parsed|list)"
  mailservers: "'mail' in (proxmox_tags_parsed|list)"
compose:
  ansible_port: 2222
# Note that this can easily give you wrong values as ansible_host. See further below for
# an example where this is set to `false` and where ansible_host is set with `compose`.
want_proxmox_nodes_ansible_host: true

# Using the inventory to allow ansible to connect via the first IP address of the VM / Container
# (Default is connection by name of QEMU/LXC guests)
# Note: my_inv_var demonstrates how to add a string variable to every host used by the inventory.
# my.proxmox.yml
plugin: community.general.proxmox
url: http://192.168.1.2:8006
user: ansible@pve
password: secure
validate_certs: false  # only do this when you trust the network!
want_facts: true
want_proxmox_nodes_ansible_host: false
compose:
  ansible_host: proxmox_ipconfig0.ip | default(proxmox_net0.ip) | ipaddr('address')
  my_inv_var_1: "'my_var1_value'"
  my_inv_var_2: >
    "my_var_2_value"

# Specify the url, user and password using templating
# my.proxmox.yml
plugin: community.general.proxmox
url: "{{ lookup('ansible.builtin.ini', 'url', section='proxmox', file='file.ini') }}"
user: "{{ lookup('ansible.builtin.env','PM_USER') | default('ansible@pve') }}"
password: "{{ lookup('community.general.random_string', base64=True) }}"
# Note that this can easily give you wrong values as ansible_host. See further up for
# an example where this is set to `false` and where ansible_host is set with `compose`.
want_proxmox_nodes_ansible_host: true

Авторы

  • Jeffrey van Pelt (@Thulium-Drake)

Подсказка

Элементы конфигурации для каждого типа имеют порядок приоритетов снизу вверх. Например, переменная, расположенная ниже в списке, переопределит переменную, расположенную выше.

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

  • Отслеживание задач
  • Репозиторий (источники)
  • Задать вопрос
  • Отправить отчет об ошибке
  • Запросить функцию
  • Общение

© 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/general/proxmox_inventory.html

Spec-Zone.ru

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