vmware

Инструменты Ansible для VMWare

Эта роль предоставляет несколько действий для использования с кластерами VMWare, в настоящее время она включает в себя:

  • powerstate: Управление состояниями питания ВМ
  • provision_guest: Создание/редактирование виртуальных машин и шаблонов (могут быть некоторые ограничения!)
  • snap: Управление моментальными снимками ВМ

Эта роль может делегировать все необходимые действия на другую машину, которая может быть даже разной для каждой целевой ВМ. В этой роли этот хост называется «API-хост».

Для задач, которые требуют поиска ВМ в вашей среде, доступна дополнительная переменная с всей информацией о целевых ВМ. Это позволяет использовать атрибуты VMWare, например, в именах моментальных снимков. Вы можете найти эту информацию в переменной 'vm_info'.

Использование

Этот модуль требует использования PyVmomi и VMWare SDK, эта роль обнаружит и попытается установить все необходимые зависимости самостоятельно.

Для получения подробных инструкций по установке этих зависимостей вручную, пожалуйста, ознакомьтесь с примером настройки.

Примечание об использовании с RHEL 8

Эта роль будет работать отлично на обеих версиях RHEL8, однако из-за необходимой версии Python для vSphere SDK, вам нужно изменить ansible_python_interpreter в зависимости от основной версии vSphere. Пожалуйста, посмотрите примеры плейбуков для того, чтобы узнать, как это сделать.

  • SDK vSphere 7 требует Python 3.3+
  • SDK vSphere 8 требует Python 3.8+, что требует специального ansible_python_interpreter на RHEL8

Эта роль была подготовлена с поддержкой vSphere 7, но это еще не было протестировано.

Несколько кластеров vSphere? Без проблем!

Плейбук настроен на использование учетных данных vSphere и информации в hostvars целевой ВМ. Таким образом, настройка для нескольких кластеров VMware так же проста, как определение этих учетных данных для конкретного хоста/группы, как и для любой другой переменной.

Когда Ansible выполняет плейбук, он ищет всю необходимую информацию для конкретной целевой ВМ. Переменные, которые будут поискаться для каждого хоста (и должны быть определены в 'group_vars'):

  • vsphere_api_host
  • vsphere_datacenter
  • vsphere_host
  • vsphere_password
  • vsphere_username

Состояние питания

Поддерживаемые состояния:

  • Включить ВМ с использованием инструментов VMWare или виртуальной кнопки питания
  • Выключить ВМ с использованием инструментов VMWare или виртуальной кнопки питания
  • Перезагрузить/сбросить ВМ с использованием инструментов VMWare или виртуальной кнопки питания

Роль НЕ будет запрашивать необходимую информацию, она может быть предоставлена только с помощью плейбука, который ее вызывает:

 - hosts: all
   gather_facts: no
   tasks:
   - import_role:
       name: vmware
     vars:
       target_action: "powerstate"
       target_state: "powered-on"
     run_once: yes

Обязательные переменные:

  • target_action: одно из действий, представленных в этой роли
  • target_state: одно из состояний в списке поддерживаемых состояний

Моментальный снимок

Поддерживаемые действия:

  • Создание моментальных снимков (автоматически с временной меткой или с указанным именем)
  • Удаление определенных или всех моментальных снимков
  • Возврат к заданному моментальному снимку, этот скрипт НЕ предоставит вам список для выбора.

Роль НЕ будет запрашивать требуемую информацию, она может быть предоставлена только с помощью плейбука, который ее вызывает:

 - hosts: all
   gather_facts: no
   tasks:
   - import_role:
       name: vmware
     vars:
       target_action: "snap"
       target_state: "present"
       target_snapshot_name: ansible_snap_stuff
     run_once: yes

Обязательные переменные:

  • target_action: одно из действий, представленных в этой роли
  • target_state: одно из действий в списке поддерживаемых состояний

Дополнительные переменные:

  • target_snapshot_name:
    • При создании снимков: переопределите имя снимка
    • При возврате/удалении моментальных снимков: целевой снимок для удаления

Развертывание гостя

Поддерживаемые действия:

  • Создание новой ВМ на основе шаблона или другой ВМ
  • Удаление ВМ
  • Создание нового шаблона на основе ВМ

Роль НЕ будет запрашивать никакой необходимой информации, она может быть предоставлена только с помощью плейбука, который ее вызывает. В каталоге defaults доступен стандартный профиль оборудования.

Чтобы создать новую ВМ, выполните следующие шаги:

  • Создайте файл переменных с следующей информацией (для деталей, обратитесь к документации к модулю vmware_guest и ниже):
    • Хранилище
    • Папка ВМ
    • Шаблон (убедитесь, что он существует)
    • Настройка диска и тип контроллера диска
    • Настройка сети
    • Настройка оперативной памяти и ЦП
    • Версия оборудования ВМ и тип BIOS
  • Добавьте новую запись в инвентарь
  • Выполните плейбук, например:
---
- hosts: new-host.example.com
  gather_facts: no
  tasks:
    - import_role:
        name: vmware
      vars:
        target_action: provision_guest
        target_state: present
        target_esxi_hostname: esxi.example.com
      run_once: yes

Обязательные переменные (большинство из них имеют значение по умолчанию):

  • target_action: одно из действий, представленных в этой роли
  • target_state: одно из действий в списке поддерживаемых состояний.
  • target_esxi_hostname / target_esxi_cluster: Название хоста/кластера, на котором должна работать ВМ.
  • target_folder: Папка, в которой должна находиться ВМ
  • target_networks: Словарь с настройками сети. Пожалуйста, обратитесь к документации vmware_guest.
  • target_disks: Словарь с конфигурацией дисков. Пожалуйста, обратитесь к документации vmware_guest.
  • target_ram: Словарь с настройками памяти. Пожалуйста, обратитесь к файлу значений по умолчанию для примера.
  • target_cpu: Словарь с настройками ЦП. Пожалуйста, обратитесь к файлу значений по умолчанию для примера.
  • target_template: Шаблон, на основе которого будет создана ВМ, это может быть другая ВМ или шаблон.

Дополнительные переменные:

  • target_force: Игнорировать любые предупреждения или ошибки.
  • target_scsi: Тип контроллера диска для использования.
  • target_boot_firmware: Тип BIOS ВМ.
  • target_vm_version: Версия оборудования VMWare для использования.
  • target_customization: Любая настройка VMWare, которая будет применена к ВМ после ее создания. Пожалуйста, ознакомьтесь с документацией vmware_guest для получения дополнительной информации.
Установить
ansible-galaxy install Thulium-Drake/ansible-role-vmware
Лицензия
gpl-3.0
Загрузки
2222
Владелец