Spec-Zone.ru › Ansible 2.7

Удаление существующей виртуальной машины VMware

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

Введение

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

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

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

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

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

    • Ansible (или целевой сервер) должен иметь сетевой доступ к серверу vCenter или серверу ESXi
    • Имя пользователя и пароль для сервера vCenter или ESXi
    • Узлы в кластере ESXi должны иметь доступ к хранилищу данных, на котором находится шаблон.

Ограничения

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

Предупреждение

Удаление виртуальной машины VMware с помощью модуля vmware_guest — это операция, которая не может быть отменена, поэтому настоятельно рекомендуется создать резервную копию виртуальной машины и связанных файлов (vmx и vmdk) перед продолжением.

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

В этом случае/примере пользователь будет удалять виртуальную машину по имени. Следующий Ansible-план показывает основные параметры, которые необходимы для этого.

---
- name: Remove virtual machine
  gather_facts: no
  vars_files:
    - vcenter_vars.yml
  vars:
    ansible_python_interpreter: "/usr/bin/env python3"
  hosts: localhost
  tasks:
    - set_fact:
        vm_name: "VM_0003"
        datacenter: "DC1"

    - name: Remove "{{ vm_name }}"
      vmware_guest:
        hostname: "{{ vcenter_server }}"
        username: "{{ vcenter_user }}"
        password: "{{ vcenter_pass }}"
        validate_certs: no
        cluster: "DC1_C1"
        name: "{{ vm_name }}"
        state: absent
      delegate_to: localhost
      register: facts

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

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

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

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

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

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

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

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

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

Что ожидать

  • После завершения этого playbook вы не увидите никакого JSON-вывода по сравнению с другими операциями, выполняемыми с помощью модуля vmware_guest.
{
    "changed": true
}
  • Состояние изменяется на True, что сообщает об удалении виртуальной машины из инвентаризации VMware. Это может занять некоторое время в зависимости от вашей среды и сетевого подключения.

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

Если ваш 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.7/vmware/scenario_remove_vm.html

Spec-Zone.ru

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