Spec-Zone.ru › Ansible 2.10

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

Примечание

Этот плагин входит в коллекцию community.vmware (версия 1.6.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
логический
    Варианты:
  • нет ←
  • да
записи 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
строка
По умолчанию:
"память"
записи ini:

[defaults]
fact_caching = память

[inventory]
cache_plugin = память

среда: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": ""}]
Добавление узлов в группы на основе значений переменной.
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
Имя ключа основано на snake case имени типа vim; например, host_system соответствует vim.HostSystem
См. Типы VIM
strict
логический
    Варианты:
  • нет ←
  • да
Если yes считать недопустимые записи ошибкой, в противном случае пропустить и продолжить.
Поскольку фактами в выражениях можно пользоваться, они могут не всегда быть доступны, и по умолчанию такие ошибки игнорируются.
username
строка / обязательно
среда:VMWARE_USER
среда:VMWARE_USERNAME
Имя пользователя vSphere.
validate_certs
логический
    Варианты:
  • нет
  • да ←
среда:VMWARE_VALIDATE_CERTS
Позволяет подключение, когда сертификаты SSL недействительны.
Установите в значение false, когда сертификаты ненадёжны.
with_nested_properties
логический
    Варианты:
  • нет ←
  • да
Этот параметр преобразует имена плоских свойств во вложенный словарь.
with_path
логический
    Варианты:
  • нет ←
  • да
Включить путь к виртуальным машинам.
Установите это значение в строку, чтобы заменить имя корня на 'Центры данных'.
with_sanitized_property_name
логический
    Варианты:
  • нет ←
  • да
Этот параметр позволяет очищать имена свойств для создания безопасных имён свойств, используемых в Ansible.
Также преобразует имена свойств в snake case.
with_tags
логический
    Варианты:
  • нет ←
  • да
Включить метки и связанные виртуальные машины.
Требует библиотеки '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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/vmware/vmware_vm_inventory_inventory.html

Spec-Zone.ru

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