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] среда:ANSIBLE_INVENTORY_CACHE | Включает/выключает кеширование исходных данных инвентаризации, для работы требуется настройка плагина кеша. |
| cache_connection строка | записи ini: [defaults] [inventory] среда:ANSIBLE_CACHE_PLUGIN_CONNECTION среда:ANSIBLE_INVENTORY_CACHE_CONNECTION | Данные или путь к подключению кеша, подробности см. в документации плагина кеша. | |
| cache_plugin строка | По умолчанию: "память" | записи ini: [defaults] [inventory] среда:ANSIBLE_CACHE_PLUGIN среда:ANSIBLE_INVENTORY_CACHE_PLUGIN | Плагин кеша для использования исходных данных инвентаризации. |
| cache_prefix строка | По умолчанию: "ansible_inventory_" | записи ini: [default] [inventory] среда:ANSIBLE_CACHE_PLUGIN_PREFIX среда:ANSIBLE_INVENTORY_CACHE_PLUGIN_PREFIX | Префикс для файлов/таблиц плагина кеша |
| cache_timeout целое число | По умолчанию: 3600 | записи ini: [defaults] [inventory] среда: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', установленной на данном контроллере. Обратитесь к следующим ссылкам для установки. |
Примеры
# 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