community.vmware.vmware_guest – Управляет виртуальными машинами в vCenter
Примечание
Этот плагин входит в коллекцию community.vmware (версия 1.6.0).
Для его установки используйте: ansible-galaxy collection install community.vmware.
Для использования в плейбуке укажите: community.vmware.vmware_guest.
Обзор
- Этот модуль может использоваться для создания новых виртуальных машин из шаблонов или других виртуальных машин, управления состоянием питания виртуальной машины, например, включение, выключение, приостановка, завершение работы, перезагрузка, повторный запуск и т. д., изменения различных компонентов виртуальной машины, таких как сеть, диск, настройка и т. д., переименование виртуальной машины и удаление виртуальной машины с соответствующими компонентами.
Требования
Ниже приведены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- PyVmomi
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| annotation строка | Примечание или аннотация, включаемая в виртуальную машину. псевдонимы: notes | ||
| cdrom raw | Список конфигураций CD-ROM для виртуальной машины. Добавлено в версии 2.9. Предоставление конфигурации CD-ROM в виде словаря устарело и будет удалено в VMware версии 4.0.0. Используйте вместо этого список. Параметры controller_type, controller_number, unit_number, state добавлены для поддержки списка конфигураций CD-ROM.Для контроллера ide поддержка динамического добавления или удаления CD-ROM не поддерживается. | ||
| controller_number целое число | Для контроллера ide допустимое значение равно 0 или 1.Для контроллера sata допустимые значения от 0 до 3. | ||
| controller_type строка | Допустимые значения ide и sata. Значение по умолчанию ide. При установке значения sata, убедитесь, что unit_number правильное и не используется дисками SATA. | ||
| iso_path строка | Путь к файлу ISO в хранилище данных в формате [datastore1] path/to/file.iso. Требуется, если тип установлен в iso. | ||
| state строка | Допустимые значения present или absent. Значение по умолчанию present. Если установлено значение absent, указанный CD-ROM будет удалён. | ||
| type строка | Тип CD-ROM, допустимые значения none, client или iso. При значении none CD-ROM будет отключён, но останется присутствовать.Значение по умолчанию client. | ||
| unit_number целое число | Для подключения CD-ROM к контроллеру ide, допустимое значение 0 или 1.Для подключения CD-ROM к контроллеру sata, допустимые значения от 0 до 29.controller_number и unit_number — обязательные атрибуты. | ||
| cluster строка | Имя кластера, в котором будет работать виртуальная машина. Обязательный параметр, если esxi_hostname не задан.esxi_hostname и cluster — взаимоисключающие параметры.Этот параметр чувствителен к регистру. | ||
| convert строка |
| Указывает тип диска при клонировании шаблона или виртуальной машины. | |
| customization словарь | Параметры настройки ОС при клонировании из шаблона или виртуальной машины или применении к существующей виртуальной машине. Не все операционные системы поддерживаются для настройки с соответствующей версией vCenter, пожалуйста, обратитесь к документации VMware для соответствующей настройки ОС. Для матрицы поддерживаемых операционных систем настройки (см. http://partnerweb.vmware.com/programs/guestOS/guest-os-customization-matrix.pdf) Все параметры и имена объектов VMware чувствительны к регистру. В ОС на базе Linux для настройки ОС необходима установка пакета Perl. | ||
| autologon булево |
| Автоматический вход после настройки виртуальной машины. Специфично для настройки Windows. | |
| autologoncount целое число | По умолчанию: 1 | Количество автоматических входов после перезагрузки. Специфично для настройки Windows. | |
| dns_servers список / элементы=строка | Список DNS-серверов для настройки. Общее для настройки Linux и Windows. | ||
| dns_suffix список / элементы=строка | Список доменных суффиксов, также известных как DNS-поисковый путь. Значение по умолчанию domain параметра.Общее для настройки Linux и Windows. | ||
| domain строка | Имя домена DNS для использования. Общее для настройки Linux и Windows. | ||
| domainadmin строка | Пользователь, используемый для присоединения к домену AD. Требуется, если указан joindomain. Специфично для настройки Windows. | ||
| domainadminpassword строка | Пароль, используемый для присоединения к домену AD. Требуется, если указан joindomain. Специфично для настройки Windows. | ||
| existing_vm булево |
| Если установлено значение True, выполняется настройка ОС непосредственно на указанной виртуальной машине.Общее для настройки Linux и Windows. | |
| fullname строка | По умолчанию: "Администратор" | Имя владельца сервера. Специфично для настройки Windows. | |
| hostname строка | Имя хоста компьютера. Значение по умолчанию — сокращённый name параметр.Допустимые символы — алфавитно-цифровые (строчные и заглавные) и дефис; остальные символы отбрасываются в соответствии с RFC 952. Общее для настройки Linux и Windows. | ||
| hwclockUTC булево |
| Указывает, находится ли системный таймер в формате UTC или локального времени. Специфично для настройки Linux. | |
| joindomain строка | Домен AD для присоединения. Несовместимо с joinworkgroup. Специфично для настройки Windows. | ||
| joinworkgroup строка | По умолчанию: "WORKGROUP" | Рабочая группа для присоединения. Несовместимо с joindomain. Специфично для настройки Windows. | |
| orgname строка | По умолчанию: "ACME" | Название организации. Специфично для настройки Windows. | |
| password строка | Пароль локального администратора. Специфично для настройки Windows. | ||
| productid строка | Идентификатор продукта. Специфично для настройки Windows. | ||
| runonce список / элементы=строка | Список команд, которые нужно выполнить при первом входе пользователя. Специфично для настройки Windows. | ||
| timezone строка | Часовой пояс. См. Список поддерживаемых часовых поясов для разных версий vSphere в Linux/Unix. Общее для настройки Linux и Windows. | ||
| customization_spec строка | Уникальное имя, идентифицирующее запрашиваемую спецификацию настройки. Этот параметр чувствителен к регистру. Если установлен, переопределяет значения параметра customization. | ||
| customvalues список / элементы=словарь | Определяет список пользовательских значений для установки на виртуальную машину. Объект пользовательского значения содержит два поля key и value. Неправильные ключи и значения будут проигнорированы. | ||
| datacenter строка | По умолчанию: "ha-datacenter" | Целевой центр обработки данных для операции развертывания. Этот параметр чувствителен к регистру. | |
| datastore строка | Укажите хранилище данных или кластер хранилищ данных для развертывания виртуальной машины. Этот параметр имеет приоритет над параметром disk.datastore. Этот параметр можно использовать для переопределения настройки хранилища данных или кластера хранилищ данных виртуальной машины при развертывании из шаблона. См. пример для получения дополнительной информации. | ||
| delete_from_inventory булево |
| Удалить виртуальную машину из инвентаризации или с диска. | |
| disk список / элементы=словарь | Список дисков для добавления. Этот параметр чувствителен к регистру. Уменьшение размера дисков не поддерживается. Удаление существующих дисков виртуальной машины не поддерживается. Атрибуты controller_type, controller_number, unit_number используются для настройки нескольких типов контроллеров дисков и самих дисков для создания или переконфигурации виртуальной машины. Добавлено в Ansible 2.10. | ||
| autoselect_datastore логический |
| Выбрать наименее используемый хранилище данных. disk.datastore и disk.autoselect_datastore не будут использоваться, если datastore указан вне этой disk конфигурации. | |
| controller_number целое число | Номер шины контроллера диска. Максимальное количество контроллеров одного типа — 4 на одну ВМ. Допустимый диапазон значений от 0 до 3. | ||
| controller_type строка | Тип контроллера диска. Допустимые значения: buslogic, lsilogic, lsilogicsas, paravirtual, sata и nvme.
Поддержка типа контроллера nvme начинается с ESXi 6.5 с версией аппаратного обеспечения ВМ version 13. Установка этого типа на недопустимый ESXi или версию аппаратного обеспечения ВМ приведет к сбоям при развертывании.При установке значения sata, убедитесь, что unit_number правильное и не используется SATA-CDROM.Если установлено значение типа sata, убедитесь, что controller_number и unit_number установлены правильно, когда cdrom также установлено как тип sata. | ||
| datastore строка | Имя хранилища данных, которое будет использоваться для диска. Если autoselect_datastore установлено в True, выберет наименее используемое хранилище данных, имя которого содержит строку "disk.datastore". | ||
| disk_mode строка | Тип режима диска. Добавлено в Ansible 2.6. Если указано persistent, изменения немедленно и постоянно записываются на виртуальный диск. Это значение по умолчанию.Если указано independent_persistent, аналогично постоянному, но не затрагиваются снимки.Если указано independent_nonpersistent, изменения виртуального диска выполняются в журнале отката и удаляются при выключении питания, но не затрагиваются снимки. | ||
| filename строка | Используемый существующий образ диска. Файл должен уже существовать в хранилище данных. Укажите строку имени файла в формате [datastore_name] path/to/file.vmdk. Добавлено в Ansible 2.8. | ||
| size целое число | Размер хранилища диска. Укажите единицы измерения, такие как [kb, mb, gb, tb]. | ||
| size_gb целое число | Размер хранилища диска в ГБ. | ||
| size_kb целое число | Размер хранилища диска в КБ. | ||
| size_mb целое число | Размер хранилища диска в МБ. | ||
| size_tb целое число | Размер хранилища диска в ТБ. | ||
| type строка | Тип диска. Если указано thin, тип диска устанавливается в тонкий диск.Если указано eagerzeroedthick, тип диска устанавливается в толстый диск с eagerzero. Добавлено в Ansible 2.5.Если не указано, тип диска — толстый диск без eagerzero. | ||
| unit_number целое число | Номер устройства диска. Допустимый диапазон значений от 0 до 15 для контроллера SCSI, за исключением 7. Допустимый диапазон значений от 0 до 14 для контроллера NVME. Допустимый диапазон значений от 0 до 29 для контроллера SATA. controller_type, controller_number и unit_number необходимы при создании или переконфигурации ВМ с несколькими типами контроллеров дисков и самих дисков.При создании новой ВМ первый настроенный диск в списке disk будет «Жесткий диск 1». | ||
| esxi_hostname строка | Имя хоста ESXi, на котором будет запущена виртуальная машина. Этот параметр обязателен, если cluster не задан.esxi_hostname и cluster — взаимоисключающие параметры.Этот параметр чувствителен к регистру. | ||
| folder строка | Папка назначения, абсолютный путь для поиска существующего гостевого экземпляра или создания нового. Папка должна включать центр обработки данных. Центр обработки данных ESXi — ha-datacenter. Этот параметр чувствителен к регистру. Если найдено несколько машин с одинаковым именем, этот параметр используется для идентификации. Примеры: folder: /ha-datacenter/vm folder: ha-datacenter/vm folder: /datacenter1/vm folder: datacenter1/vm folder: /datacenter1/vm/folder1 folder: datacenter1/vm/folder1 folder: /folder1/datacenter1/vm folder: folder1/datacenter1/vm folder: /folder1/datacenter1/vm/folder2 | ||
| force логический |
| Игнорировать предупреждения и выполнить действия. Этот параметр полезен при удалении виртуальной машины, которая находится в рабочем состоянии. Этот модуль отражает рабочий процесс API и пользовательского интерфейса VMware vCenter, поэтому в некоторых случаях флаг `force` будет обязателен для выполнения действия, чтобы убедиться, что действие необходимо выполнить независимо от последствий. Это особенно актуально для удаления виртуальной машины, включенной в работу, когда state установлено в absent. | |
| guest_id строка | Установить идентификатор гостя. Этот параметр чувствителен к регистру. rhel7_64Guest для виртуальной машины с RHEL7 64 бита.centos64Guest для виртуальной машины с CentOS 64 бита.ubuntu64Guest для виртуальной машины с Ubuntu 64 бита.Это поле обязательно при создании виртуальной машины, не обязательно при создании из шаблона. Допустимые значения указаны здесь: https://code.vmware.com/apis/358/doc/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html
| ||
| hardware словарь | Управление атрибутами аппаратного обеспечения виртуальной машины. Все параметры чувствительны к регистру. | ||
| boot_firmware строка | Выберите прошивку, которая должна использоваться для загрузки виртуальной машины. | ||
| cpu_limit целое число | Использование ЦП виртуальной машины не превысит этот лимит. Единица измерения — МГц. | ||
| cpu_reservation целое число | Количество ресурсов ЦП, гарантированно доступных виртуальной машине. | ||
| hotadd_cpu логический |
| Разрешить добавление виртуальных процессоров во время работы виртуальной машины. | |
| hotadd_memory логический |
| Разрешить добавление памяти во время работы виртуальной машины. | |
| hotremove_cpu логический |
| Разрешить удаление виртуальных процессоров во время работы виртуальной машины. | |
| max_connections целое число | Максимальное количество активных удаленных подключений к дисплею для виртуальных машин. | ||
| mem_limit целое число | Использование памяти виртуальной машины не превысит этот лимит. Единица измерения — МБ. | ||
| mem_reservation целое число | Количество ресурсов памяти, гарантированно доступных виртуальной машине. | ||
| memory_mb целое число | Объем памяти в МБ. | ||
| memory_reservation_lock логический |
| Если установлено true, зарезервировать ресурсы памяти для виртуальной машины. | |
| num_cpu_cores_per_socket целое число | Количество ядер на сокет. | ||
| num_cpus целое число | Количество процессоров. num_cpus должно быть кратно num_cpu_cores_per_socket. Например, для создания ВМ с 2 сокетами по 4 ядра укажите num_cpus как 8 и num_cpu_cores_per_socket как 4. | ||
| scsi string | Допустимые значения — buslogic, lsilogic, lsilogicsas и paravirtual.paravirtual — значение по умолчанию. | ||
| version integer | Версии виртуального оборудования. Значение по умолчанию — 10 (ESXi 5.5 и выше). Если установлено значение latest, указанная виртуальная машина будет обновлена до самой последней поддерживаемой версии оборудования на хосте.latest добавлено в Ansible 2.10.Для получения правильной версии виртуального оборудования обратитесь к документации VMware. Неправильная версия оборудования может привести к сбоям при развертывании. Если версия оборудования уже совпадает с заданной. | ||
| virt_based_security boolean |
| Включить функцию виртуализированной безопасности для Windows на ESXi 6.7 и более поздних версий, начиная с версии оборудования 14. Поддерживаемые гостевые операционные системы: Windows 10 64-бит, Windows Server 2016, Windows Server 2019 и более поздние версии. Прошивки виртуальной машины должны быть EFI. Развертывание на недопустимых ESXi, версии оборудования или прошивки может привести к сбоям или развертыванию виртуальной машины с неожиданными конфигурациями. | |
| hostname string | Имя хоста или IP-адрес сервера vSphere vCenter или ESXi. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения VMWARE_HOST.Поддержка переменных окружения добавлена в Ansible 2.6. | ||
| is_template boolean |
| Отметить экземпляр как шаблон. Это позволит пометить заданную виртуальную машину как шаблон. | |
| linked_clone boolean |
| Создавать ли связанный клон из указанного снимка? Если указано, то snapshot_src является обязательным параметром. | |
| name string | Имя виртуальной машины, с которой необходимо работать. Имена виртуальных машин в vCenter не обязательно уникальны, что может быть проблематично, см. name_match.Если существует несколько виртуальных машин с одинаковым именем, параметр folder необходим для определения уникальности виртуальной машины.Этот параметр требуется, если state установлено в значения poweredon, powered-on, poweredoff, powered-off, present, restarted, suspended и виртуальная машина не существует.Этот параметр чувствителен к регистру. | ||
| name_match string |
| Если найдено несколько виртуальных машин, соответствующих имени, использовать первую или последнюю найденную. | |
| networks list / elements=dictionary | Список сетей (в порядке подключения сетевых адаптеров). Удаление сетевых адаптеров не разрешено при переконфигурации виртуальной машины. Все параметры и имена объектов VMware чувствительны к регистру. | ||
| connected boolean добавлено в 1.5.0 community.vmware |
| Указывает, подключен ли сетевой адаптер в настоящее время. | |
| device_type string | Устройство виртуальной сети. Допустимое значение может быть одним из e1000, e1000e, pcnet32, vmxnet2, vmxnet3, sriov.vmxnet3 — значение по умолчанию.Необязательный параметр на запись. Используется для виртуального оборудования. | ||
| dns_servers string | DNS-серверы для этого сетевого интерфейса (Windows). Необязательный параметр на запись. Используется для настройки операционной системы. | ||
| domain string | Имя домена для этого сетевого интерфейса (Windows). Необязательный параметр на запись. Используется для настройки операционной системы. | ||
| dvswitch_name string | Имя распределенного vSwitch. Необязательный параметр на запись. Используется для виртуального оборудования. | ||
| gateway string | Статический шлюз. Необязательный параметр на запись. Используется для настройки операционной системы. | ||
| ip string | Статический IP-адрес. Подразумевает type=static.Необязательный параметр на запись. Используется для настройки операционной системы. | ||
| mac string | Настройка MAC-адреса. Необязательный параметр на запись. Используется для виртуального оборудования. | ||
| name string | Имя портгруппы или распределённой виртуальной портгруппы для этого интерфейса. Обязательный параметр на запись. При указании распределённой виртуальной портгруппы убедитесь, что заданная esxi_hostname или cluster связана с ней. | ||
| netmask string | Статическая маска подсети, необходимая для ip.Необязательный параметр на запись. Используется для настройки операционной системы. | ||
| start_connected boolean |
| Указывает, следует ли подключать устройство при запуске виртуальной машины. | |
| type string | Тип назначения IP-адреса. Допустимые значения — dhcp, static.dhcp — значение по умолчанию.Необязательный параметр на запись. Используется для настройки операционной системы. | ||
| vlan integer | Номер VLAN для этого интерфейса. Обязательный параметр на запись. | ||
| password string | Пароль сервера vSphere vCenter или ESXi. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения VMWARE_PASSWORD.Поддержка переменных окружения добавлена в Ansible 2.6. псевдонимы: pass, pwd | ||
| port integer | Значение по умолчанию: 443 | Номер порта сервера vSphere vCenter или ESXi. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения VMWARE_PORT.Поддержка переменных окружения добавлена в Ansible 2.6. | |
| proxy_host string | Адрес прокси-сервера, который будет получать все запросы HTTPS и перенаправлять их. Формат — имя хоста или IP-адрес. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения VMWARE_PROXY_HOST.Эта функция зависит от версии pyvmomi, большей, чем v6.7.1.2018.12 | ||
| proxy_port integer | Порт HTTP-прокси-сервера, который будет получать все запросы HTTPS и перенаправлять их. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения VMWARE_PROXY_PORT. | ||
| resource_pool string | Использовать указанный пул ресурсов для работы с виртуальной машиной. Этот параметр чувствителен к регистру. Пул ресурсов должен быть дочерним по отношению к выбранному родительскому хосту. | ||
| snapshot_src string | Имя существующего снимка, который нужно использовать для создания клона виртуальной машины. Этот параметр чувствителен к регистру. При создании связанного клона с помощью параметра linked_clone этот параметр требуется. | ||
| состояние строка |
| Укажите состояние виртуальной машины. Если state установлено в present, и виртуальная машина существует, убедитесь, что конфигурация виртуальной машины соответствует аргументам задачи.Если state установлено в absent, и виртуальная машина существует, то указанная виртуальная машина удаляется вместе со связанными компонентами.Если state установлено в одно из следующих значений poweredon, powered-on, poweredoff, powered-off, present, restarted, suspended, и виртуальная машина не существует, виртуальная машина развертывается с заданными параметрами.Если state установлено в poweredon или powered-on, и виртуальная машина существует в состоянии, отличном от включенного, указанная виртуальная машина включается.Если state установлено в poweredoff или powered-off, и виртуальная машина существует в состоянии, отличном от выключенного, указанная виртуальная машина выключается.Если state установлено в restarted, и виртуальная машина существует, виртуальная машина перезапускается.Если state установлено в suspended, и виртуальная машина существует, виртуальная машина переходит в режим приостановки.Если state установлено в shutdownguest или shutdown-guest, и виртуальная машина существует, виртуальная машина выключается.Если state установлено в rebootguest или reboot-guest, и виртуальная машина существует, виртуальная машина перезагружается.Состояние питания powered-on и powered-off добавлено в версии 2.10. | |
| state_change_timeout целое число | По умолчанию: 0 | Если state установлено в shutdownguest, по умолчанию модуль возвращает результат сразу после отправки сигнала выключения.Если этот аргумент установлен в положительное целое число, модуль ожидает, пока виртуальная машина не перейдет в состояние выключена. Значение задаёт таймаут в секундах для ожидания модулем изменения состояния. | |
| шаблон строка | Шаблон или существующая виртуальная машина, используемая для создания новой виртуальной машины. Если это значение не задано, виртуальная машина создаётся без использования шаблона. Если виртуальная машина уже существует, этот параметр будет проигнорирован. Этот параметр чувствителен к регистру. Начиная с версии 2.8, можно использовать абсолютный путь к виртуальной машине или шаблону. псевдонимы: template_src | ||
| использовать_uuid_инстанса булево |
| Использовать UUID экземпляра VMware вместо UUID BIOS. | |
| имя_пользователя строка | Имя пользователя сервера vCenter vSphere или ESXi. Если значение не указано в задаче, вместо него используется значение переменной окружения VMWARE_USER. Поддержка переменных окружения добавлена в Ansible 2.6. псевдонимы: admin, user | ||
| uuid строка | UUID виртуальной машины для управления, если известен, это уникальный идентификатор VMware. Это требуется, если name не указано.Если виртуальная машина не существует, этот параметр игнорируется. Обратите внимание, что предоставленный UUID будет проигнорирован при создании виртуальной машины, так как VMware создаёт UUID внутри. | ||
| проверять_сертификаты булево |
| Разрешает подключение, когда SSL-сертификаты недействительны. Установите в false, когда сертификаты ненадёжны.Если значение не указано в задаче, вместо него используется значение переменной окружения VMWARE_VALIDATE_CERTS. Поддержка переменных окружения добавлена в Ansible 2.6. Если установлено true, убедитесь, что на данном компьютере установлен Python >= 2.7.9. | |
| vapp_properties список / элементы=словарь | Список свойств vApp. Полный список атрибутов и типов см. по адресу: https://code.vmware.com/apis/704/vsphere/vim.vApp.PropertyInfo.html
| ||
| id строка | Идентификатор свойства. Требуется для каждой записи. | ||
| операция строка | Атрибут remove требуется только при удалении свойств. | ||
| тип строка | Тип значения, по умолчанию строка. | ||
| значение строка | Значение свойства. | ||
| ждать_настройки булево |
| Ожидать, пока vCenter обнаружит, что все настройки гостевой системы успешно завершены. При включении виртуальная машина автоматически включится. Если vCenter не обнаружит начала или успешного завершения настройки гостевой системы, после истечения времени, указанного в параметре wait_for_customization_timeout, будет выведено сообщение об ошибке, и результат задачи — неудача. | |
| timeout_ожидания_настроек целое число | По умолчанию: "3600" | Определите таймаут (в секундах) для параметра wait_for_customization. Будьте осторожны при установке этого значения, так как время, затраченное на настройку гостевой системы, может отличаться в зависимости от гостевой ОС. | |
| ждать_адрес_ip булево |
| Ожидать, пока vCenter обнаружит IP-адрес для виртуальной машины. Для корректной работы требуется vmware-tools (vmtoolsd) после создания. Для работы с этим параметром необходимо установить vmware-tools на заданную виртуальную машину. | |
| timeout_ожидания_адреса_ip целое число | По умолчанию: "300" | Определите таймаут (в секундах) для параметра wait_for_ip_address. | |
Примечания
Примечание
- Убедитесь, что пользователь, используемый для community.vmware.vmware_guest, имеет соответствующие привилегии.
- Например, следующий список минимальных привилегий, необходимых пользователям для создания виртуальных машин.
- Хранилище данных > Выделить место
- Виртуальная машина > Конфигурация > Добавить новый диск
- Виртуальная машина > Конфигурация > Добавить или удалить устройство
- Виртуальная машина > Инвентаризация > Создать новую
- Сеть > Назначить сеть
- Ресурс > Назначить виртуальную машину пулу ресурсов
- Для сбора фактов (например, конфигураций ESXi) может потребоваться дополнительный набор привилегий.
- Тестировалось на vSphere 5.5, 6.0, 6.5 и 6.7.
- Используйте диски SCSI вместо IDE, если требуется онлайн-расширение дисков, указав контроллер SCSI.
- Использует SysPrep для Windows VM (зависит от соответствия параметра «guest_id» со значением «win») с PyVmomi.
- Для изменения параметров ВМ (например, количества процессоров), ВМ должна быть выключена, если не включена поддержка hot-add, и необходимо использовать
state=present, чтобы применить изменения. - Дополнительную информацию можно найти на вики-странице Ansible VMware - https://github.com/ansible/community/wiki/VMware.
Примеры
- name: Create a virtual machine on given ESXi hostname
community.vmware.vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
folder: /DC1/vm/
name: test_vm_0001
state: poweredon
guest_id: centos64Guest
# This is hostname of particular ESXi server on which user wants VM to be deployed
esxi_hostname: "{{ esxi_hostname }}"
disk:
- size_gb: 10
type: thin
datastore: datastore1
hardware:
memory_mb: 512
num_cpus: 4
scsi: paravirtual
networks:
- name: VM Network
mac: aa:bb:dd:aa:00:14
ip: 10.10.10.100
netmask: 255.255.255.0
device_type: vmxnet3
wait_for_ip_address: true
wait_for_ip_address_timeout: 600
delegate_to: localhost
register: deploy_vm
- name: Create a virtual machine from a template
community.vmware.vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
folder: /testvms
name: testvm_2
state: poweredon
template: template_el7
disk:
- size_gb: 10
type: thin
datastore: g73_datastore
# Add another disk from an existing VMDK
- filename: "[datastore1] testvms/testvm_2_1/testvm_2_1.vmdk"
hardware:
memory_mb: 512
num_cpus: 6
num_cpu_cores_per_socket: 3
scsi: paravirtual
memory_reservation_lock: True
mem_limit: 8096
mem_reservation: 4096
cpu_limit: 8096
cpu_reservation: 4096
max_connections: 5
hotadd_cpu: True
hotremove_cpu: True
hotadd_memory: False
version: 12 # Hardware version of virtual machine
boot_firmware: "efi"
cdrom:
- controller_number: 0
unit_number: 0
state: present
type: iso
iso_path: "[datastore1] livecd.iso"
networks:
- name: VM Network
mac: aa:bb:dd:aa:00:14
wait_for_ip_address: true
delegate_to: localhost
register: deploy
- name: Clone a virtual machine from Windows template and customize
community.vmware.vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: datacenter1
cluster: cluster
name: testvm-2
template: template_windows
networks:
- name: VM Network
ip: 192.168.1.100
netmask: 255.255.255.0
gateway: 192.168.1.1
mac: aa:bb:dd:aa:00:14
domain: my_domain
dns_servers:
- 192.168.1.1
- 192.168.1.2
- vlan: 1234
type: dhcp
customization:
autologon: true
dns_servers:
- 192.168.1.1
- 192.168.1.2
domain: my_domain
password: new_vm_password
runonce:
- powershell.exe -ExecutionPolicy Unrestricted -File C:\Windows\Temp\ConfigureRemotingForAnsible.ps1 -ForceNewSSLCert -EnableCredSSP
delegate_to: localhost
- name: Clone a virtual machine from Linux template and customize
community.vmware.vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter }}"
state: present
folder: /DC1/vm
template: "{{ template }}"
name: "{{ vm_name }}"
cluster: DC1_C1
networks:
- name: VM Network
ip: 192.168.10.11
netmask: 255.255.255.0
wait_for_ip_address: True
customization:
domain: "{{ guest_domain }}"
dns_servers:
- 8.9.9.9
- 7.8.8.9
dns_suffix:
- example.com
- example2.com
delegate_to: localhost
- name: Rename a virtual machine (requires the virtual machine's uuid)
community.vmware.vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
uuid: "{{ vm_uuid }}"
name: new_name
state: present
delegate_to: localhost
- name: Remove a virtual machine by uuid
community.vmware.vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
uuid: "{{ vm_uuid }}"
state: absent
delegate_to: localhost
- name: Remove a virtual machine from inventory
community.vmware.vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
name: vm_name
delete_from_inventory: True
state: absent
delegate_to: localhost
- name: Manipulate vApp properties
community.vmware.vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
name: vm_name
state: present
vapp_properties:
- id: remoteIP
category: Backup
label: Backup server IP
type: string
value: 10.10.10.1
- id: old_property
operation: remove
delegate_to: localhost
- name: Set powerstate of a virtual machine to poweroff by using UUID
community.vmware.vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
uuid: "{{ vm_uuid }}"
state: poweredoff
delegate_to: localhost
- name: Deploy a virtual machine in a datastore different from the datastore of the template
community.vmware.vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
name: "{{ vm_name }}"
state: present
template: "{{ template_name }}"
# Here datastore can be different which holds template
datastore: "{{ virtual_machine_datastore }}"
hardware:
memory_mb: 512
num_cpus: 2
scsi: paravirtual
delegate_to: localhost
- name: Create a diskless VM
community.vmware.vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ dc1 }}"
state: poweredoff
cluster: "{{ ccr1 }}"
name: diskless_vm
folder: /Asia-Datacenter1/vm
guest_id: centos64Guest
datastore: "{{ ds1 }}"
hardware:
memory_mb: 1024
num_cpus: 2
num_cpu_cores_per_socket: 1
- name: Create a VM with multiple disks of different disk controller types
community.vmware.vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
folder: /DC1/vm/
name: test_vm_multi_disks
state: poweredoff
guest_id: centos64Guest
datastore: datastore1
disk:
- size_gb: 10
controller_type: 'nvme'
controller_number: 0
unit_number: 0
- size_gb: 10
controller_type: 'paravirtual'
controller_number: 0
unit_number: 1
- size_gb: 10
controller_type: 'sata'
controller_number: 0
unit_number: 2
hardware:
memory_mb: 512
num_cpus: 4
version: 14
networks:
- name: VM Network
device_type: vmxnet3
delegate_to: localhost
register: deploy_vm
Возвращаемые значения
Общие возвращаемые значения описаны в здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| instance словарь | всегда | метаданные о новой виртуальной машине Пример: Нет |
Авторы
- Лоик Бло (@nerzhul) <loic.blot@unix-experience.fr>
- Филипп Деллаерт (@pdellaert) <philippe@dellaert.org>
- Абхиджейт Касурде (@Akasurde) <akasurde@redhat.com>
© 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/collections/community/vmware/vmware_guest_module.html