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 | Включить/выключить кэширование данных источника инвентаризации. Требуется настройка плагина кэша. Выборы:
Настройка:
|
cache_connection string | Данные подключения или путь к кэшу. Смотрите документацию плагина кэша для подробностей. Настройка:
|
cache_plugin string | Плагин кэша для данных источника инвентаризации. По умолчанию: Настройка:
|
cache_prefix string | Префикс для файлов/таблиц плагина кэша По умолчанию: Настройка:
|
cache_timeout integer | Время жизни кэша в секундах По умолчанию: Настройка:
|
compose dictionary added in community.general 2.5.0 | Создать переменные из выражений jinja2. По умолчанию: |
exclude_nodes boolean added in community.general 8.1.0 | Исключить узлы proxmox и группы узлов из вывода инвентаризации. Выборы:
|
facts_prefix string | Префикс, применяемый к фактам конфигурации LXC/QEMU. По умолчанию: |
filters list / elements=string added in community.general 4.6.0 | Список шаблонов Jinja, позволяющих фильтровать хосты. По умолчанию: |
group_prefix string | Префикс, применяемый к группам 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 |
Значение по умолчанию, если значение переменной хоста пустая строка. Этот параметр взаимоисключающий с |
|
key string |
Ключ из входного словаря, используемый для генерации групп |
|
parent_group string |
родительская группа для ключевой группы |
|
prefix string |
Имя ключевой группы будет начинаться с этого префикса По умолчанию: |
|
разделитель строка |
разделитель, используемый для построения имени группы с ключами По умолчанию: |
|
trailing_separator логическое добавлен в ansible-core 2.12 |
Установите это значение в Этот параметр несовместим с Доступные значения:
|
leading_separator логическое добавлен в ansible-core 2.11 | Используется совместно с keyed_groups. По умолчанию, группа с ключом, у которой нет префикса или указанного разделителя, будет иметь имя, начинающееся с подчёркивания. Это происходит потому, что по умолчанию префикс — пустая строка, а разделитель — «_». Установите этот параметр в значение False, чтобы опустить начальное подчёркивание (или другой разделитель), если префикс не указан. Если имя группы получено из отображения, разделитель всё равно используется для конкатенации элементов. Чтобы вообще не использовать разделитель в имени группы, установите разделитель для группы с ключом в пустую строку. Доступные значения:
|
пароль строка | Пароль аутентификации Proxmox. Если значение не указано в конфигурации инвентаризации, вместо него будет использовано значение переменной окружения Начиная с community.general 4.7.0, вы также можете использовать шаблоны для указания значения Если вы не укажете пароль, необходимо установить Конфигурация:
|
plugin строка / обязательно | Имя этого плагина. Для распознавания плагина им необходимо всегда задавать значение Доступные значения:
|
qemu_extended_statuses логическое добавлен в community.general 5.1.0 | Требует Это вводит несколько групп [с префиксом Доступные значения:
|
strict логическое добавлен в community.general 2.5.0 | Если Поскольку в выражениях можно использовать факты, они могут не быть всегда доступны, и по умолчанию мы игнорируем такие ошибки. Доступные значения:
|
token_id строка добавлен в community.general 4.8.0 | Идентификатор токена аутентификации Proxmox. Если значение не указано в конфигурации инвентаризации, вместо него будет использовано значение переменной окружения Для использования аутентификации по токену также необходимо указать Убедитесь, что токену предоставлены явные разрешения pve или отключена «разделение привилегий», чтобы использовать привилегии пользователя вместо этого. Конфигурация:
|
token_secret строка добавлен в community.general 4.8.0 | Секретный токен аутентификации Proxmox. Если значение не указано в конфигурации инвентаризации, вместо него будет использовано значение переменной окружения Для использования аутентификации по токену также необходимо указать Конфигурация:
|
url строка | URL-адрес кластера Proxmox. Если значение не указано в конфигурации инвентаризации, вместо него будет использовано значение переменной окружения Начиная с community.general 4.7.0, вы также можете использовать шаблоны для указания значения По умолчанию: Конфигурация:
|
use_extra_vars логическое добавлен в ansible-core 2.11 | Объединить дополнительные переменные в доступные переменные для композиции (самый высокий приоритет). Доступные значения:
Конфигурация:
|
user строка / обязательно | Пользователь аутентификации Proxmox. Если значение не указано в конфигурации инвентаризации, будет использовано значение переменной окружения Начиная с community.general 4.7.0, вы также можете использовать шаблоны для указания значения Конфигурация:
|
validate_certs булево | Проверка SSL-сертификата при использовании HTTPS. Варианты:
|
want_facts булево | Сбор фактов конфигурации LXC/QEMU. Когда Варианты:
|
want_proxmox_nodes_ansible_host булево добавлен в community.general 3.0.0 | Устанавливать Если установлено Значение по умолчанию этого параметра изменилось с Варианты:
|
Примеры
# 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
Ссылки на коллекцию
© 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