Spec-Zone.ru › Ansible 2.11

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

Примечание

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

Для установки используйте: ansible-galaxy collection install community.vmware.

Для использования в плейбуке укажите: community.vmware.vmware_vm_inventory.

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

Обзор

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

Требования

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

  • Python >= 2.7
  • PyVmomi
  • requests >= 2.3
  • vSphere Automation SDK - Для функции тегов

Параметры

Параметр Варианты/Значения по умолчанию Настройка Комментарии
cache
boolean
    Варианты:
  • нет ←
  • да
Входные данные ini:

[inventory]
cache = нет

Переменная среды:ANSIBLE_INVENTORY_CACHE
Переключатель для включения/отключения кеширования исходных данных инвентаризации. Требуется настройка плагина кеша для работы.
cache_connection
строка
Входные данные ini:

[defaults]
fact_caching_connection = None

[inventory]
cache_connection = None

Переменная среды: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:

[default]
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
список / элементы=строка
Значение по умолчанию:
[]
Этот параметр позволяет фильтровать хосты на стороне клиента с помощью шаблонирования jinja.
При внедрении фильтрации на стороне сервера, следует отдавать предпочтение этому.
groups
словарь
Значение по умолчанию:
{}
Добавить хосты в группу на основе условных выражений Jinja2.
hostname
строка / обязательно
Переменная среды:VMWARE_HOST
Переменная среды:VMWARE_SERVER
Имя сервера vCenter или ESXi.
hostnames
список / элементы=строка
Значение по умолчанию:
["config.name + \"_\" + config.uuid"]
Список шаблонов в порядке приоритета для составления inventory_hostname.
Игнорирует шаблон, если результат — пустая строка или значение None.
Можно использовать свойства, указанные в properties, как переменные в шаблоне.
keyed_groups
список / элементы=строка
Значение по умолчанию:
[{"key": "config.guestId", "separator": ""}, {"key": "summary.runtime.powerState", "separator": ""}]
Добавить хосты в группу на основе значений переменной.
leading_separator
boolean
добавлено в 2.11 ansible.builtin
    Варианты:
  • нет
  • да ←
Используйте вместе с keyed_groups.
По умолчанию, у группы, для которой не указан префикс или разделитель, имя начинается с подчеркивания.
Это потому, что префикс по умолчанию — "" , а разделитель по умолчанию — "_".
Установите этот параметр в False, чтобы опустить ведущее подчеркивание (или другой разделитель), если префикс не задан.
Если имя группы получено из отображения, разделитель всё равно используется для конкатенации элементов.
Для того, чтобы вообще не использовать разделитель в имени группы, установите разделитель для группы keyed в пустую строку.
password
строка / обязательно
Переменная среды:VMWARE_PASSWORD
Пароль пользователя vSphere.
port
целое число
Значение по умолчанию:
443
Переменная среды:VMWARE_PORT
Номер порта, используемый для подключения к серверу vCenter или ESXi.
properties
список / элементы=строка
Значение по умолчанию:
["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"]
Укажите список свойств схемы VMware, связанных с виртуальной машиной.
Эти свойства будут заполнены в hostvars заданной виртуальной машины.
Каждое значение в списке может быть путем к определенному свойству объекта виртуальной машины или путем к набору объектов виртуальных машин.
config.name, config.uuid являются необходимыми свойствами, если hostnames установлено по умолчанию.
config.guestId, summary.runtime.powerState необходимы, если keyed_groups установлено по умолчанию.
Пожалуйста, убедитесь, что все свойства, используемые в других параметрах, включены в этом параметре.
Помимо свойств виртуальной машины, следующие являются специальными значениями
Используйте customValue для заполнения пользовательских атрибутов виртуальной машины. customValue поддерживается только vCenter, а не ESXi.
Используйте all для заполнения всех свойств виртуальной машины. Значение all — это длительная операция, используйте только в крайнем случае.
См. больше атрибутов гостевых машин VMware, которые могут быть использованы как свойства https://github.com/ansible/ansible/blob/devel/docs/docsite/rst/scenario_guides/vmware_scenarios/vmware_inventory_vm_attributes.rst
resources
список / элементы=строка
добавлено в 2.10 community.vmware
Значение по умолчанию:
[]
Список ресурсов для ограничения области поиска.
Каждый элемент ресурса представлен ровно одной парой 'vim_type_snake_case:list of resource names и необязательными вложенными resources
Имя ключа основано на змеином регистре имени типа vim; например, host_system соответствует vim.HostSystem
См. Типы VIM
strict
boolean
    Варианты:
  • нет ←
  • да
Если yes сделать недопустимые записи ошибкой, иначе пропустить и продолжить.
Так как можно использовать факты в выражениях, они могут не всегда быть доступны, и мы игнорируем эти ошибки по умолчанию.
use_extra_vars
boolean
добавлено в 2.11 ansible.builtin
    Варианты:
  • нет ←
  • да
Входные данные ini:

[inventory_plugins]
use_extra_vars = нет

Переменная среды:ANSIBLE_INVENTORY_USE_EXTRA_VARS
Объединить дополнительные переменные в доступные переменные для составления (высший приоритет).
username
строка / обязательно
Переменная среды:VMWARE_USER
Переменная среды:VMWARE_USERNAME
Имя пользователя vSphere.
validate_certs
boolean
    Варианты:
  • нет
  • да ←
Переменная среды:VMWARE_VALIDATE_CERTS
Разрешает подключение, когда сертификаты SSL недействительны.
Установите в false, когда сертификаты не доверяются.
with_nested_properties
boolean
    Варианты:
  • нет ←
  • да
Этот параметр преобразует имена плоских свойств во вложенный словарь.
with_path
boolean
    Варианты:
  • нет ←
  • да
Включать пути к виртуальным машинам.
Установите этот параметр в строковое значение, чтобы заменить корневое имя из 'Центры данных'.
with_sanitized_property_name
boolean
    Варианты:
  • нет ←
  • да
Этот параметр позволяет очищать имена свойств для создания безопасных имён свойств для использования в Ansible.
Также преобразует имя свойства в змеиный регистр.
with_tags
boolean
    Варианты:
  • нет ←
  • да
Включать теги и связанные виртуальные машины.
Требуется библиотека 'vSphere Automation SDK' для установки на заданный контроллер.
См. следующие ссылки для шагов установки
https://code.vmware.com/web/sdk/7.0/vsphere-automation-python

Примеры

# 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

# 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'

# 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
    with_tags: 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
    with_tags: 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'
    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"

Авторы

  • Abhijeet Kasurde (@Akasurde)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/vmware/vmware_vm_inventory_inventory.html

Spec-Zone.ru

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