community.vmware.vmware_guest – Управляет виртуальными машинами в vCenter
Примечание
Этот плагин входит в коллекцию community.vmware (версия 1.7.0).
Для его установки используйте: ansible-galaxy collection install community.vmware.
Для использования в книге задач, укажите: community.vmware.vmware_guest.
Описание
- Этот модуль может использоваться для создания новых виртуальных машин из шаблонов или других виртуальных машин, управления состоянием питания виртуальной машины, например, включение, выключение, приостановление, выключение, перезагрузка, перезапуск и т. д., изменения различных компонентов виртуальной машины, таких как сеть, диск, настройка и т. д., переименование виртуальной машины и удаление виртуальной машины с соответствующими компонентами.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- PyVmomi
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| annotation строка | Примечание или аннотация, включаемая в виртуальную машину. псевдонимы: notes | ||
| cdrom сырой | Список конфигураций 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 строка |
| Укажите тип диска convert при клонировании шаблона или виртуальной машины. | |
| customization словарь | Параметры для настройки ОС при клонировании из шаблона или виртуальной машины или применении к существующей виртуальной машине напрямую. Не все операционные системы поддерживаются для настройки с соответствующей версией vCenter, пожалуйста, см. документацию VMware для конкретной настройки ОС. Для матрицы поддерживаемых операционных систем настройки (см. http://partnerweb.vmware.com/programs/guestOS/guest-os-customization-matrix.pdf) Все параметры и имена объектов VMware чувствительны к регистру. ОС на базе Linux требуют установленного пакета Perl для настройки ОС. | ||
| autologon булево |
| Автологин после настройки виртуальной машины. Специфично для настройки Windows. | |
| autologoncount целое число | Количество автологинов после перезагрузки. Специфично для настройки Windows. Игнорируется, если autologon не задано или установлено на False.Если не задано, используется значение 1. | ||
| 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. Если не задано, по умолчанию используется «Administrator». | ||
| hostname строка | Имя хоста компьютера. Значение по умолчанию — сокращенное значение параметра name.Допустимые символы — буквенно-цифровые (заглавные и строчные) и дефис; остальные символы отбрасываются в соответствии с RFC 952. Общее для настройки Linux и Windows. | ||
| hwclockUTC булево |
| Указывает, используется ли системный таймер в формате UTC или локального времени. Специфично для настройки Linux. | |
| joindomain строка | AD домен для присоединения. Несовместимо с joinworkgroup.Специфично для настройки Windows. | ||
| joinworkgroup строка | Рабочая группа для присоединения. Несовместимо с joindomain.Специфично для настройки Windows. Если не задано, по умолчанию используется «WORKGROUP». | ||
| orgname строка | Имя организации. Специфично для настройки Windows. Если не задано, по умолчанию используется «ACME». | ||
| 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 на VM. Допустимый диапазон значений от 0 до 3. | ||
| controller_type строка | Тип контроллера диска. Допустимые значения: buslogic, lsilogic, lsilogicsas, paravirtual, sata и nvme.
Поддержка типа контроллера nvme начинается с ESXi 6.5 с версией аппаратного обеспечения VM version 13. Установка этого типа на неподдерживаемый ESXi или версию аппаратного обеспечения VM приведет к ошибке при развертывании.При установке значения 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, тип диска устанавливается как eagerzeroedthick диск. Добавлен в 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_reservation | ||
| memory_mb целое число | Объем памяти в МБ. | ||
| memory_reservation_lock булево |
| Если установлено true, зарезервировать ресурсы памяти для виртуальной машины. | |
| nested_virt булево |
| Включить вложенную виртуализацию. | |
| num_cpu_cores_per_socket целое число | Количество ядер на сокет. | ||
| num_cpus integer | Количество ЦП. 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 string | Версии аппаратного обеспечения виртуальной машины. По умолчанию 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-адрес сервера vCenter или ESXi vSphere. Если значение не указано в задаче, вместо него будет использовано значение переменной среды 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 вместо BIOS UUID. | |
| имя_пользователя строка | Имя пользователя сервера 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 список / элементы=словарь | Список свойств vApp. Полный список атрибутов и типов см. на странице: https://code.vmware.com/apis/704/vsphere/vim.vApp.PropertyInfo.html
| ||
| id строка | Идентификатор свойства. Обязательно для каждого элемента. | ||
| операция строка | Атрибут remove требуется только при удалении свойств. | ||
| тип строка | Тип значения, по умолчанию строковый тип. | ||
| значение строка | Значение свойства. | ||
| подождать_настройку булево |
| Подождать, пока vCenter обнаружит успешное завершение всех гостевых настроек. При включении VM автоматически включится. Если vCenter не обнаружит начало или успешное завершение гостевой настройки, через время, указанное параметром wait_for_customization_timeout, будет выведено сообщение об ошибке, и результат задачи будет «ошибка». | |
| подождать_настройку_таймаут целое число | Значение по умолчанию: "3600" | Установите таймаут (в секундах) для параметра wait_for_customization. Будьте внимательны при установке этого значения, поскольку время, затраченное на гостевые настройки, может отличаться в зависимости от гостевой ОС. | |
| подождать_адрес_ip булево |
| Подождать, пока vCenter обнаружит IP-адрес для виртуальной машины. Для правильной работы требуется vmware-tools (vmtoolsd) после создания. vmware-tools необходимо установить на данной виртуальной машине для работы с этим параметром. | |
| подождать_адрес_ip_таймаут целое число | Значение по умолчанию: "300" | Установите таймаут (в секундах) для параметра wait_for_ip_address. | |
Примечания
Примечание
- Убедитесь, что пользователь, используемый для community.vmware.vmware_guest, имеет соответствующие права.
- Например, ниже приведён список минимальных прав, необходимых пользователям для создания виртуальных машин.
- Хранилище данных > Выделить место
- Виртуальная машина > Настройка > Добавить новый диск
- Виртуальная машина > Настройка > Добавить или удалить устройство
- Виртуальная машина > Инвентаризация > Создать новую
- Сеть > Назначить сеть
- Ресурс > Назначить виртуальную машину на пул ресурсов
- Модуль может потребовать дополнительных прав, которые могут потребоваться для сбора фактов, например, конфигурации ESXi.
- Тестировалось на vSphere 5.5, 6.0, 6.5 и 6.7.
- Используйте SCSI-диски вместо IDE, если хотите онлайн-расширять диски, указав контроллер SCSI.
- Для Windows VM используется SysPrep (зависит от соответствия параметра guest_id значению «win») с PyVmomi.
- Для изменения параметров VM (например, количества процессоров) VM должна быть выключена, если не включена поддержка горячей добавки, и необходимо использовать
state=present, чтобы применить изменения. - Дополнительную информацию можно найти на странице wiki сообщества 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
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращённое | Описание |
|---|---|---|
| экземпляр словарь | всегда | метаданные о новой виртуальной машине Пример: Нет |
Авторы
- Лоик Бло (@nerzhul) <loic.blot@unix-experience.fr>
- Филипп Деллаерт (@pdellaert) <philippe@dellaert.org>
- Абхиджей Касурде (@Akasurde) <akasurde@redhat.com>
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/vmware/vmware_guest_module.html