Spec-Zone.ru › Ansible

community.vmware.vmware_vm_inventory — источник инвентаризации гостевых систем VMware

Примечание

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

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

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

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

  • УСТАРЕЛО
  • Краткое описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Статус

УСТАРЕЛО

Удалено в:

версии 7.0.0

Причина:

Этот модуль перенесён в новую коллекцию vmware.vmware

Альтернатива:

Вместо него используйте vmware.vmware.vms.

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

  • Получает виртуальные машины из среды VMware в качестве хостов инвентаризации.
  • Использует любой файл с именем, оканчивающимся на vmware.yml, vmware.yaml, vmware_vm_inventory.yml или vmware_vm_inventory.yaml, в качестве файла конфигурации YAML.

Требования

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

  • requests >= 2.3
  • vSphere Automation SDK — для работы с тегами

Параметры

Параметр

Комментарии

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

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

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

enable_backward_compatibility

boolean

Свести свойства узла к плоскому списку для обратной совместимости.

Варианты:

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

filters

list / elements=string

Этот параметр позволяет фильтровать узлы на стороне клиента с помощью шаблонов Jinja.

При появлении фильтрации на стороне сервера следует отдавать предпочтение ей.

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

groups

dictionary

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

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

hostname

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

Имя сервера vCenter или ESXi.

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

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

hostnames

list / elements=string

Список шаблонов в порядке приоритета для формирования inventory_hostname.

Шаблон игнорируется, если в результате получена пустая строка или значение None.

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

По умолчанию: ["config.name + \"_\" + config.uuid"]

keyed_groups

list / elements=dictionary

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

По умолчанию: [{"key": "config.guestId", "separator": ""}, {"key": "summary.runtime.powerState", "separator": ""}]

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 ← (по умолчанию)

leading_separator

boolean

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

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

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

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

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

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

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

Варианты:

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

password

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

Пароль пользователя vSphere.

Поддерживает переменную, зашифрованную с помощью vault.

Поддерживает шаблонизацию значения с помощью Jinja

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

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

port

integer

Номер порта для подключения к серверу vCenter или ESXi.

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

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

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

properties

list / elements=string

Укажите список свойств схемы VMware, связанных с виртуальной машиной.

Эти свойства будут добавлены в hostvars указанной виртуальной машины.

Каждое значение списка может быть путём к определённому свойству объекта виртуальной машины или путём к коллекции объектов виртуальных машин.

Если hostnames имеет значение по умолчанию, необходимы свойства config.name и config.uuid.

Если keyed_groups имеет значение по умолчанию, необходимы свойства config.guestId и summary.runtime.powerState.

Убедитесь, что этот параметр содержит все свойства, используемые в других параметрах.

Помимо свойств виртуальной машины, доступны следующие специальные значения:

Используйте customValue, чтобы добавить пользовательские атрибуты виртуальной машины. customValue поддерживается только vCenter, но не ESXi.

Используйте all, чтобы добавить все свойства виртуальной машины. Значение all приводит к длительной операции; используйте его только при крайней необходимости.

Дополнительные атрибуты гостевой системы VMware, которые можно использовать в качестве свойств, см. по ссылке https://docs.ansible.com/ansible/latest/collections/community/vmware/docsite/vmware_scenarios/vmware_inventory_vm_attributes.html

По умолчанию: ["name", "config.cpuHotAddEnabled", "config.cpuHotRemoveEnabled", "config.instanceUuid", "config.hardware.numCPU", "config.template", "config.name", "config.uuid", "guest.hostName", "guest.ipAddress", "guest.guestId", "guest.guestState", "runtime.maxMemoryUsage", "customValue", "summary.runtime.powerState", "config.guestId"]

proxy_host

string

Адрес прокси-сервера, который будет принимать все HTTPS-запросы и перенаправлять их.

Укажите имя узла или IP-адрес.

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

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

proxy_port

integer

Порт HTTP-прокси-сервера, который будет принимать все HTTPS-запросы и перенаправлять их.

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

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

resources

list / elements=dictionary

Список ресурсов для ограничения области поиска.

Каждый элемент ресурса представлен ровно одной парой 'vim_type_snake_case:list of resource names и необязательным вложенным элементом resources

Имя ключа формируется из имени типа vim в snake case; например, host_system соответствует vim.HostSystem

См. типы VIM

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

strict

boolean

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

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

Варианты:

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

subproperties

list / elements=dictionary

добавлено в community.vmware 4.2.0

Список вложенных свойств обычного свойства.

Эти вложенные свойства также будут добавлены в hostvars указанной виртуальной машины.

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

property

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

Имя свойства

subelements

list / elements=string

Список вложенных элементов

use_extra_vars

boolean

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

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

Варианты:

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

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

  • Запись INI:

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

username

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

Имя пользователя vSphere.

Поддерживает переменную, зашифрованную с помощью vault.

Поддерживает шаблонизацию значения с помощью Jinja

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

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

validate_certs

boolean

Разрешает подключение, если SSL-сертификаты недействительны.

Установите значение false, если сертификаты не являются доверенными.

Варианты:

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

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

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

with_nested_properties

boolean

Этот параметр преобразует плоские имена свойств во вложенный словарь.

Варианты:

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

with_path

boolean

Добавлять путь к виртуальным машинам.

Задайте для этого параметра строковое значение, чтобы заменить корневое имя ‘Datacenters’.

Варианты:

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

with_sanitized_property_name

boolean

Этот параметр позволяет очищать имена свойств, чтобы создавать безопасные имена для использования в Ansible.

Кроме того, преобразует имена свойств в snake case.

Варианты:

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

with_tags

boolean

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

На указанной управляющей машине должна быть установлена библиотека «vSphere Automation SDK».

Инструкции по установке см. по следующим URL-адресам:

https://code.vmware.com/web/sdk/7.0/vsphere-automation-python

Варианты:

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

Примечание

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

Примечания

Примечание

  • На этом этапе инвентаризация ещё не окончательно сформирована, поэтому автоматически заполненные группы all и ungrouped будут содержать только данные, явно добавленные в них предыдущими источниками инвентаризации.
  • Во время построения инвентаризации «магические переменные» времени выполнения недоступны. Например, groups и hostvars ещё не существуют.

Примеры

# Sample configuration file for VMware Guest dynamic inventory
    plugin: community.vmware.vmware_vm_inventory
    strict: false
    hostname: 10.65.223.31
    username: administrator@vsphere.local
    password: Esxi@123$%
    validate_certs: false
    with_tags: true

# Sample configuration file for VMware Guest dynamic inventory using Jinja to template the username and password.
    plugin: community.vmware.vmware_vm_inventory
    strict: false
    hostname: 10.65.223.31
    username: '{{ (lookup("file","~/.config/vmware.yaml") | from_yaml).username }}'
    password: '{{ (lookup("file","~/.config/vmware.yaml") | from_yaml).password }}'
    validate_certs: false
    with_tags: true

# Gather minimum set of properties for VMware guest
    plugin: community.vmware.vmware_vm_inventory
    strict: false
    hostname: 10.65.223.31
    username: administrator@vsphere.local
    password: Esxi@123$%
    validate_certs: false
    properties:
    - 'name'
    - 'guest.ipAddress'
    - 'config.name'
    - 'config.uuid'

# Gather subproperties such as the parent (mostly cluster) of an ESXi
    plugin: community.vmware.vmware_vm_inventory
    strict: false
    hostname: 10.65.223.31
    username: administrator@vsphere.local
    password: Esxi@123$%
    validate_certs: false
    properties:
    - 'name'
    - 'guest.ipAddress'
    - 'config.name'
    - 'config.uuid'
    subproperties:
    - property: 'summary.runtime.host'
      subelements:
      - 'name'
      - 'parent.name'

# Create Groups based upon VMware Tools status
    plugin: community.vmware.vmware_vm_inventory
    strict: false
    hostname: 10.65.223.31
    username: administrator@vsphere.local
    password: Esxi@123$%
    validate_certs: false
    properties:
    - 'name'
    - 'config.name'
    - 'guest.toolsStatus'
    - 'guest.toolsRunningStatus'
    hostnames:
    - config.name
    keyed_groups:
    - key: guest.toolsStatus
      separator: ''
    - key: guest.toolsRunningStatus
      separator: ''

# Filter VMs based upon condition
    plugin: community.vmware.vmware_vm_inventory
    strict: false
    hostname: 10.65.223.31
    username: administrator@vsphere.local
    password: Esxi@123$%
    validate_certs: false
    properties:
    - 'runtime.powerState'
    - 'config.name'
    filters:
    - runtime.powerState == "poweredOn"
    hostnames:
    - config.name

# Filter VM's based on OR conditions
    plugin: community.vmware.vmware_vm_inventory
    strict: false
    hostname: 10.65.223.31
    username: administrator@vsphere.local
    password: Esxi@123$%
    validate_certs: false
    properties:
    - 'name'
    - 'config.name'
    - 'guest.ipAddress'
    - 'guest.toolsStatus'
    - 'guest.toolsRunningStatus'
    - 'config.guestFullName'
    - 'config.guestId'
    hostnames:
    - 'config.name'
    filters:
    - config.guestId == "rhel7_64Guest" or config.name == "rhel_20_04_empty"

# Filter VM's based on regex conditions
    plugin: community.vmware.vmware_vm_inventory
    strict: false
    hostname: 10.65.223.31
    username: administrator@vsphere.local
    password: Esxi@123$%
    validate_certs: false
    properties:
    - 'config.name'
    - 'config.guestId'
    - 'guest.ipAddress'
    - 'summary.runtime.powerState'
    filters:
    - guest.ipAddress is defined and (guest.ipAddress is match('192.168.*') or guest.ipAddress is match('192.169.*'))

# Using compose and groups
    plugin: community.vmware.vmware_vm_inventory
    strict: false
    hostname: 10.65.223.31
    username: administrator@vsphere.local
    password: Esxi@123$%
    validate_certs: false
    properties:
    - 'name'
    - 'config.name'
    - 'guest.ipAddress'
    compose:
      # This will populate the IP address of virtual machine if available
      # and will be used while communicating to the given virtual machine
      ansible_host: 'guest.ipAddress'
      composed_var: 'config.name'
      # This will populate a host variable with a string value
      ansible_user: "'admin'"
      ansible_connection: "'ssh'"
    groups:
      VMs: true
    hostnames:
    - config.name

# Use Datacenter, Cluster and Folder value to list VMs
    plugin: community.vmware.vmware_vm_inventory
    strict: false
    hostname: 10.65.200.241
    username: administrator@vsphere.local
    password: Esxi@123$%
    validate_certs: false
    with_tags: true
    resources:
      - datacenter:
        - Asia-Datacenter1
        - Asia-Datacenter2
        resources:
        - compute_resource:
          - Asia-Cluster1
          resources:
          - host_system:
            - Asia-ESXI4
        - folder:
          - dev
          - prod

# Use Category and it's relation with Tag
    plugin: community.vmware.vmware_vm_inventory
    strict: false
    hostname: 10.65.201.128
    username: administrator@vsphere.local
    password: Esxi@123$%
    validate_certs: false
    hostnames:
    - 'config.name'
    properties:
    - 'config.name'
    - 'config.guestId'
    - 'guest.ipAddress'
    - 'summary.runtime.powerState'
    with_tags: true
    keyed_groups:
    - key: tag_category.OS
      prefix: "vmware_tag_os_category_"
      separator: ""
    with_nested_properties: true
    filters:
    - "tag_category.OS is defined and 'Linux' in tag_category.OS"

# customizing hostnames based on VM's FQDN. The second hostnames template acts as a fallback mechanism.
    plugin: community.vmware.vmware_vm_inventory
    strict: false
    hostname: 10.65.223.31
    username: administrator@vsphere.local
    password: Esxi@123$%
    validate_certs: false
    hostnames:
     - 'config.name+"."+guest.ipStack.0.dnsConfig.domainName'
     - 'config.name'
    properties:
      - 'config.name'
      - 'config.guestId'
      - 'guest.hostName'
      - 'guest.ipAddress'
      - 'guest.guestFamily'
      - 'guest.ipStack'

# Select a specific IP address for use by ansible when multiple NICs are present on the VM
    plugin: community.vmware.vmware_vm_inventory
    strict: false
    hostname: 10.65.223.31
    username: administrator@vsphere.local
    password: Esxi@123$%
    validate_certs: false
    compose:
      # Set the IP address used by ansible to one that starts by 10.42. or 10.43.
      ansible_host: >-
        guest.net
        | selectattr('ipAddress')
        | map(attribute='ipAddress')
        | flatten
        | select('match', '^10.42.*|^10.43.*')
        | list
        | first
    properties:
      - guest.net

# Group hosts using Jinja2 conditionals
    plugin: community.vmware.vmware_vm_inventory
    strict: false
    hostname: 10.65.13.37
    username: administrator@vsphere.local
    password: Esxi@123$%
    validate_certs: false
    hostnames:
    - config.name
    properties:
    - 'name'
    - 'config.name'
    - 'config.datastoreUrl'
    groups:
      slow_storage: "'Nas01' in config.datastoreUrl[0].name"
      fast_storage: "'SSD' in config.datastoreUrl[0].name"

Статус

  • Этот инвентарь будет удалён в версии 7.0.0. [устарело]
  • Дополнительную информацию см. в разделе УСТАРЕЛО.

Авторы

  • Abhijeet Kasurde (@Akasurde)

Ссылки коллекции

  • Трекер проблем
  • Главная страница
  • Репозиторий (исходный код)

© 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/community/vmware/vmware_vm_inventory_inventory.html

Spec-Zone.ru

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