Spec-Zone.ru › Ansible

Инвентаризация kubevirt.core.kubevirt — источник инвентаризации для VirtualMachines и VirtualMachineInstances KubeVirt

Примечание

Этот плагин инвентаризации входит в коллекцию kubevirt.core (версия 2.3.0).

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

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

Чтобы использовать его в плейбуке, укажите: kubevirt.core.kubevirt.

  • Краткое описание
  • Требования
  • Параметры
  • Примечания
  • Примеры

Краткое описание

  • Получает виртуальные машины из одного или нескольких пространств имён с необязательным селектором меток.
  • Создаёт группы по имени кластера, пространствам имён и меткам.
  • Использует файл конфигурации YAML *.kubevirt.[yml|yaml] для задания значений параметров.
  • По умолчанию используется активный контекст из ~/.kube/config; будут возвращены все виртуальные машины из всех пространств имён, к которым активный пользователь имеет доступ.

Требования

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

  • python >= 3.9
  • kubernetes >= 28.1.0
  • PyYAML >= 3.11

Параметры

Параметр

Комментарии

api_key

string

Токен, используемый для аутентификации в API.

Также можно указать с помощью переменной окружения K8S_AUTH_API_KEY.

api_version

string

Укажите используемую версию API KubeVirt.

По умолчанию: "kubevirt.io/v1"

append_base_domain

boolean

Добавлять базовый домен кластера к именам узлов, сформированным из SSH Services типа NodePort.

Варианты:

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

base_domain

string

Переопределить базовый домен, используемый для формирования имён узлов. Используется для kubesecondarydns или Services типа NodePort, если задан параметр append_base_domain.

ca_cert

псевдонимы: ssl_ca_cert

path

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

Также можно указать с помощью переменной окружения K8S_AUTH_SSL_CA_CERT.

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

client_cert

псевдонимы: cert_file

path

Путь к сертификату, используемому для аутентификации в API.

Также можно указать с помощью переменной окружения K8S_AUTH_CERT_FILE.

client_key

псевдонимы: key_file

path

Путь к файлу ключа, используемому для аутентификации в API.

Также можно указать с помощью переменной окружения K8S_AUTH_KEY_FILE.

compose

dictionary

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

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

connections

string

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

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

Устарел в версии 1.5.0, будет удалён в версии 3.0.0.

context

string

Имя контекста, указанного в файле конфигурации.

Также можно указать с помощью переменной окружения K8S_AUTH_CONTEXT.

create_groups

boolean

Включить создание групп на основе меток у VirtualMachines и VirtualMachineInstances.

Варианты:

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

default_win_ansible_connection

string

добавлено в kubevirt.core 2.3.0

Задать значение по умолчанию для ansible_connection при обнаружении виртуальной машины Windows.

Обычно используются значения winrm, ansible.builtin.winrm, psrp, ansible.builtin.psrp, ssh и ansible.builtin.ssh.

Если задано значение ssh или ansible.builtin.ssh, при поиске порта службы используется порт SSH (22), а не порты WinRM/PSRP (5986/5985).

Варианты:

  • "winrm" ← (по умолчанию)
  • "ansible.builtin.winrm"
  • "psrp"
  • "ansible.builtin.psrp"
  • "ssh"
  • "ansible.builtin.ssh"

groups

dictionary

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

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

host

string

Указать URL для доступа к API.

Также можно указать с помощью переменной окружения K8S_AUTH_HOST.

host_format

string

Указать формат узла в группе инвентаря. Доступные спецификаторы: name, namespace и uid.

По умолчанию: "{namespace}-{name}"

impersonate_groups

list / элементы=string

Группа или группы, от имени которых выполняется операция.

Также можно указать с помощью переменной окружения K8S_AUTH_IMPERSONATE_GROUPS, например Group1,Group2.

impersonate_user

string

Имя пользователя, от имени которого выполняется операция.

Также можно указать с помощью переменной окружения K8S_AUTH_IMPERSONATE_USER.

keyed_groups

list / элементы=dictionary

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

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

default_value

string

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

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

Этот параметр нельзя использовать одновременно с keyed_groups[].trailing_separator.

key

string

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

parent_group

string

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

prefix

string

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

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

separator

string

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

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

trailing_separator

boolean

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

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

Этот параметр нельзя использовать одновременно с keyed_groups[].default_value.

Варианты:

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

kube_secondary_dns

boolean

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

Варианты:

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

kubeconfig

any

Путь к существующему файлу конфигурации Kubernetes. Если он не указан и не заданы другие параметры подключения, клиент Kubernetes попытается загрузить файл конфигурации по умолчанию из ~/.kube/config.

Также можно указать с помощью переменной окружения K8S_AUTH_KUBECONFIG.

Можно указать несколько файлов конфигурации Kubernetes, используя в качестве разделителя ; для платформы Windows или : для других платформ.

Конфигурацию Kubernetes можно передать в виде словаря. Для этой функции требуется версия клиента Kubernetes для Python не ниже 17.17.0.

label_selector

string

Задать селектор меток для выбора подмножества полученных виртуальных машин.

leading_separator

boolean

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

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

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

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

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

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

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

Варианты:

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

name

string

Необязательное имя кластера. Если оно не задано, имя формируется из адреса сервера и порта.

namespaces

string

Список пространств имён. Если список не указан, виртуальные машины будут получены из всех пространств имён, к которым у пользователя есть доступ.

network_name

псевдонимы: interface_name

string

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

no_proxy

string

Список хостов/доменов/IP-адресов/CIDR, разделённых запятыми, для которых не следует использовать прокси.

Также можно указать с помощью переменной окружения K8S_AUTH_NO_PROXY.

Обратите внимание, что этот модуль не считывает стандартные настройки прокси из окружения (например, NO_PROXY).

Для этой функции требуется kubernetes>=19.15.0. При версии библиотеки Kubernetes ниже 19.15.0 возникает ошибка, даже если no_proxy задан правильно.

Пример значения: localhost,.local,.example.com,127.0.0.1,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16.

password

string

Указать пароль для аутентификации в API.

Также можно указать с помощью переменной окружения K8S_AUTH_PASSWORD.

Описание случаев применимости этого параметра см. в описании параметра username.

persist_config

boolean

Определяет, следует ли сохранять токены обновления конфигурации kube.

Также можно указать с помощью переменной окружения K8S_AUTH_PERSIST_CONFIG.

Если контекст k8s использует учётные данные пользователя с токенами обновления (например, oidc или аутентификацию gke/gcloud), библиотека клиента k8s для Python обновляет токен, но по умолчанию не сохраняет его. Поэтому срок действия старого токена обновления может истечь, и следующая аутентификация завершится ошибкой. Установка этого флага в значение true укажет клиенту k8s для Python сохранить новый токен обновления в файл конфигурации kube.

По умолчанию отключено.

Варианты:

  • false
  • true

plugin

string / обязательный

Токен, подтверждающий, что этот файл является источником для плагина kubevirt.core.kubevirt.

Варианты:

  • "kubevirt"
  • "kubevirt.core.kubevirt"

proxy

string

URL HTTP-прокси, используемого для подключения.

Также можно указать с помощью переменной окружения K8S_AUTH_PROXY.

Обратите внимание, что этот модуль не считывает стандартные настройки прокси из окружения (например, HTTP_PROXY).

proxy_headers

dictionary

Заголовок, используемый для HTTP-прокси.

Документацию можно найти здесь: https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html?highlight=proxy_headers#urllib3.util.make_headers.

basic_auth

string

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

Также можно указать с помощью переменной окружения K8S_AUTH_PROXY_HEADERS_BASIC_AUTH.

proxy_basic_auth

string

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

Также можно указать с помощью переменной окружения K8S_AUTH_PROXY_HEADERS_PROXY_BASIC_AUTH.

user_agent

string

Строка, задающая желаемый user-agent, например foo/1.0.

Также можно указать с помощью переменной окружения K8S_AUTH_PROXY_HEADERS_USER_AGENT.

strict

boolean

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

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

Варианты:

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

unset_ansible_port

boolean

добавлено в kubevirt.core 2.2.0

Попытаться сбросить значение ansible_port, если не найдено значение, отличное от значения по умолчанию.

Варианты:

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

use_extra_vars

boolean

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

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

Варианты:

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

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

  • Запись INI:

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

use_service

boolean

Разрешить использование Services для установки SSH-подключения к виртуальной машине.

Службы используются только в том случае, если не указан network_name.

Варианты:

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

username

string

Укажите имя пользователя для аутентификации в API.

Также можно указать с помощью переменной окружения K8S_AUTH_USERNAME.

validate_certs

псевдонимы: verify_ssl

boolean

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

Также можно указать с помощью переменной окружения K8S_AUTH_VERIFY_SSL.

Варианты:

  • false
  • true

Примечание

Перечисленные выше записи конфигурации для каждого типа записи (переменная Ansible, переменная окружения и т. д.) упорядочены от низкого к высокому приоритету. Например, переменная, расположенная ниже в списке, переопределит переменную, расположенную выше. Типы записей также упорядочены по приоритету от низкого к высокому. Например, запись ansible.cfg (расположенная выше в списке) переопределяется переменной Ansible (расположенной ниже в списке).

Примечания

Примечание

  • Во избежание ошибок проверки SSL-сертификата при validate_certs=yes полная цепочка сертификатов для сервера API должна быть указана через ca_cert или в файле kubeconfig.
  • Инвентаризация на этом этапе ещё не завершена, поэтому автоматически заполненные группы all и ungrouped будут отражать только то, что в них явно добавили предыдущие источники инвентаризации.
  • Во время построения инвентаризации динамические «магические переменные» недоступны. Например, groups и hostvars ещё не существуют.

Примеры

# Filename must end with kubevirt.[yml|yaml]

# Authenticate with token and return all virtual machines from all accessible namespaces
- plugin: kubevirt.core.kubevirt
  host: https://192.168.64.4:8443
  api_key: xxxxxxxxxxxxxxxx
  validate_certs: false

# Use default ~/.kube/config and return virtual machines from namespace testing connected to network bridge-network
- plugin: kubevirt.core.kubevirt
  namespaces:
    - testing
  network_name: bridge-network

# Use default ~/.kube/config and return virtual machines from namespace testing with label app=test
- plugin: kubevirt.core.kubevirt
  namespaces:
    - testing
  label_selector: app=test

# Use a custom config file and a specific context
- plugin: kubevirt.core.kubevirt
  kubeconfig: /path/to/config
  context: 'awx/192-168-64-4:8443/developer'

Авторы

  • Проект KubeVirt.io

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

  • Отслеживание проблем
  • Домашняя страница
  • Репозиторий (исходный код)
  • Сообщить о проблеме
  • Связь

© 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/kubevirt/core/kubevirt_inventory.html

Spec-Zone.ru

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