Использование плагина динамического инвентаризации VMware - Имена хостов
Плагин динамического инвентаризации VMware - настройка имён хостов
Плагин инвентаризации VMware позволяет настроить имена хостов с помощью параметра конфигурации hostnames.
В этом руководстве мы рассмотрим, как настроить имена хостов для заданных виртуальных машин VMware в инвентаризации.
Требования
Для использования плагинов динамической инвентаризации VMware необходимо установить pyVmomi на узле управления (хосте, на котором работает Ansible).
Для включения информации о тегах виртуальных машин в вашу динамическую инвентаризацию вам также потребуется vSphere Automation SDK, который поддерживает функции REST API, такие как тегирование и библиотеки контента, на вашем узле управления. Вы можете установить vSphere Automation SDK следуя этим инструкциям.
$ pip install pyvmomi
Начиная с Ansible 2.10, плагин динамической инвентаризации VMware доступен в community.vmware коллекции, включённой в Ansible. Для установки последней community.vmware коллекции:
$ ansible-galaxy collection install community.vmware
Для использования этого плагина динамической инвентаризации VMware:
- Вначале активируйте его, указав следующее в файле
ansible.cfg:
[inventory] enable_plugins = community.vmware.vmware_vm_inventory
- Создайте файл, который заканчивается на
vmware.ymlилиvmware.yamlв вашей рабочей директории.
Плагин инвентаризации vmware_vm_inventory принимает ту же информацию об аутентификации, что и другие модули VMware.
Вот пример валидного файла инвентаризации с настроенным именем хоста для данной виртуальной машины VMware:
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 hostnames: - config.name
Здесь мы настроили пользовательское имя хоста, установив параметр hostnames в значение config.name. Это позволит извлечь свойство config.name из виртуальной машины и заполнить им инвентаризацию.
Вы можете проверить все разрешенные свойства для данной виртуальной машины на странице Использование атрибутов виртуальных машин в плагине динамической инвентаризации VMware.
Выполнение ansible-inventory --list -i <filename>.vmware.yml создаст список виртуальных машин, готовых к настройке с помощью Ansible.
Ожидаемые результаты
Вы заметите, что вместо стандартного отображения имени хоста как config.name + _ + config.uuid, имена хостов в инвентаризации будут отображаться как config.name.
{
"_meta": {
"hostvars": {
"template_001": {
"config.name": "template_001",
"guest.toolsRunningStatus": "guestToolsNotRunning",
...
"guest.toolsStatus": "toolsNotInstalled",
"name": "template_001"
},
"vm_8046": {
"config.name": "vm_8046",
"guest.toolsRunningStatus": "guestToolsNotRunning",
...
"guest.toolsStatus": "toolsNotInstalled",
"name": "vm_8046"
},
...
}
Устранение неполадок
Если указанное в hostnames свойство не работает:
- Проверьте правильность введенных значений для имени пользователя и пароля.
- Убедитесь, что это допустимое свойство. Смотрите Использование атрибутов виртуальных машин в плагине динамической инвентаризации VMware.
- Используйте
strict: Trueдля получения дополнительной информации об ошибке. - Пожалуйста, убедитесь, что вы используете последнюю версию коллекции VMware.
См. также
- pyVmomi
-
Страница GitHub проекта pyVmomi
- Система отслеживания ошибок pyVmomi
-
Система отслеживания ошибок проекта pyVmomi
- Страница GitHub проекта vSphere Automation SDK
-
Страница GitHub проекта vSphere Automation SDK для Python
- Система отслеживания ошибок vSphere Automation SDK
-
Система отслеживания ошибок проекта vSphere Automation SDK для Python
- Использование атрибутов виртуальных машин в плагине динамической инвентаризации VMware
-
Использование атрибутов виртуальных машин в плагине динамической инвентаризации VMware
- Работа с playbook'ами
-
Введение в playbook'и
- Использование зашифрованных переменных и файлов
-
Использование Vault в playbook'ах
© 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/scenario_guides/vmware_scenarios/vmware_inventory_hostnames.html