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