Spec-Zone.ru › Ansible 2.7

Поиск пути к папке существующей виртуальной машины VMware

  • Введение
  • Требования к сценарию
  • Ограничения
  • Описание примера
    • Ожидаемый результат
    • Устранение неполадок

Введение

Это руководство покажет вам, как использовать Ansible для поиска пути к папке существующей виртуальной машины VMware.

Требования к сценарию

  • Программное обеспечение

    • Должен быть установлен Ansible версии 2.5 или выше.
    • Модуль Python Pyvmomi должен быть установлен на контрольном узле Ansible (или целевом узле, если выполнение не происходит на локальном хосте).
    • Рекомендуется установить последнюю версию с помощью pip: pip install Pyvmomi (так как пакеты ОС обычно устарели и несовместимы).
  • Аппаратное обеспечение

    • По меньшей мере один автономный сервер ESXi или
    • сервер vCenter с по меньшей мере одним сервером ESXi
  • Доступ/Учетные данные

    • Ansible (или целевой сервер) должен иметь сетевой доступ к серверу vCenter или серверу ESXi
    • Имя пользователя и пароль для сервера vCenter или ESXi

Ограничения

  • Все имена переменных и имена объектов VMware чувствительны к регистру.
  • Для использования опции validate_certs необходимо использовать Python версии 2.7.9, так как эта версия способна изменять поведение проверки SSL.

Описание примера

С помощью следующего Ansible-плейбука вы можете найти путь к папке существующей виртуальной машины по её имени.

---
- name: Find folder path of an existing virtual machine
  hosts: localhost
  gather_facts: False
  vars_files:
    - vcenter_vars.yml
  vars:
    ansible_python_interpreter: "/usr/bin/env python3"
  tasks:
    - set_fact:
        vm_name: "DC0_H0_VM0"

    - name: "Find folder for VM - {{ vm_name }}"
      vmware_guest_find:
        hostname: "{{ vcenter_server }}"
        username: "{{ vcenter_user }}"
        password: "{{ vcenter_pass }}"
        validate_certs: False
        name: "{{ vm_name }}"
      delegate_to: localhost
      register: vm_facts

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

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

Обратите внимание, что этот плейбук отключает параметр gather_facts, так как вы не хотите собирать факты о локальном хосте.

Вы можете запустить эти модули на другом сервере, который затем подключится к API, если у локального хоста нет доступа к vCenter. В этом случае необходимые модули Python необходимо установить на этот целевой сервер. Рекомендуется установить последнюю версию с помощью pip: pip install Pyvmomi (так как пакеты ОС обычно устарели и несовместимы).

Перед началом убедитесь, что у вас есть:

  • Имя хоста сервера ESXi или сервера vCenter
  • Имя пользователя и пароль для сервера ESXi или vCenter
  • Имя существующей виртуальной машины, для которой требуется получить путь к папке

Сейчас вы будете вводить эти данные напрямую, но в более продвинутом плейбуке это можно абстрагировать и хранить более безопасным способом, используя ansible-vault или используя учетные данные Ansible Tower.

Если ваш сервер vCenter или ESXi не настроен с надлежащими сертификатами CA, которые могут быть проверены с сервера Ansible, необходимо отключить проверку этих сертификатов, используя параметр validate_certs. Для этого необходимо установить validate_certs=False в вашем плейбуке.

Имя существующей виртуальной машины будет использоваться как вход для модуля vmware_guest_find через параметр name.

Ожидаемый результат

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

"vm_facts": {
    "changed": false,
    "failed": false,
    ...
    "folders": [
        "/F0/DC0/vm/F0"
    ]
}

Устранение неполадок

Если ваш плейбук завершится ошибкой:

  • Проверьте, правильные ли значения имени пользователя и пароля.
  • Проверьте, доступен ли указанный вами дата-центр.
  • Проверьте, существует ли указанная виртуальная машина и есть ли у вас соответствующие разрешения для доступа к объекту VMware.
  • Убедитесь, что указанный полный путь к папке уже существует.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/vmware/scenario_find_vm_folder.html

Spec-Zone.ru

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