vmware_guest – Управляет виртуальными машинами в vCenter
Новая версия 2.2.
Описание
- Этот модуль может использоваться для создания новых виртуальных машин из шаблонов или других виртуальных машин, управления состоянием питания виртуальной машины, например, включение, выключение, приостановление, выключение, перезагрузка, перезапуск и т.д., изменения различных компонентов виртуальной машины, таких как сеть, диск, настройка и т.д., переименования виртуальной машины и удаления виртуальной машины с соответствующими компонентами.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- PyVmomi
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| annotation - добавлено в 2.3 | Примечание или аннотация для включения в виртуальную машину. | |
| cdrom - добавлено в 2.5 | Настройка CD-ROM для виртуальной машины. Допустимые атрибуты: - type (строка): Тип CD-ROM, допустимые значения — none, client или iso. С none CD-ROM будет отключен, но присутствовать.- iso_path (строка): Путь к файлу ISO в хранилище данных в формате [datastore1] path/to/file.iso. Требуется, если тип установлен iso. | |
| cluster - добавлено в 2.3 | Имя кластера, в котором будет запущена виртуальная машина. Этот параметр обязателен, если esxi_hostname не задан.esxi_hostname и cluster — взаимоисключающие параметры.Этот параметр чувствителен к регистру. | |
| customization - добавлено в 2.3 | Параметры настройки операционной системы при клонировании из шаблона или виртуальной машины. Не все операционные системы поддерживают настройку с соответствующей версией vCenter, пожалуйста, обратитесь к документации VMware для конкретных настроек ОС. Для матрицы поддерживаемых ОС для настройки (см. http://partnerweb.vmware.com/programs/guestOS/guest-os-customization-matrix.pdf) Все параметры и имена объектов VMware чувствительны к регистру. Для ОС на базе Linux для настроек ОС требуется Perl-пакет. Общие параметры (Linux/Windows): - dns_servers (список): Список DNS-серверов для настройки.- dns_suffix (список): Список доменных суффиксов, также известных как DNS-путь поиска (по умолчанию: параметр domain).- domain (строка): Имя домена DNS для использования.- hostname (строка): Имя хоста компьютера (по умолчанию: сокращённое значение параметра name). Допустимые символы — буквенно-цифровые (строчные и прописные) и дефис, остальные символы отбрасываются в соответствии с RFC 952.Параметры, связанные с настройкой Windows: - autologon (логическое значение): Автоматический вход после настройки виртуальной машины (по умолчанию: False).- autologoncount (целое число): Количество автоматических входов после перезагрузки (по умолчанию: 1).- domainadmin (строка): Пользователь, используемый для присоединения к домену AD (обязательно с joindomain).- domainadminpassword (строка): Пароль, используемый для присоединения к домену AD (обязательно с joindomain).- fullname (строка): Имя владельца сервера (по умолчанию: Администратор).- joindomain (строка): Домен AD для присоединения (несовместимо с joinworkgroup).- joinworkgroup (строка): Рабочая группа для присоединения (несовместимо с joindomain, по умолчанию: WORKGROUP).- orgname (строка): Название организации (по умолчанию: ACME).- password (строка): Пароль локального администратора.- productid (строка): Идентификатор продукта.- runonce (список): Список команд для выполнения при первом входе пользователя.- timezone (целое число): Часовой пояс (см. https://msdn.microsoft.com/en-us/library/ms912391.aspx). | |
| customization_spec - добавлено в 2.6 | Уникальное имя, идентифицирующее запрашиваемую спецификацию настройки. Этот параметр чувствителен к регистру. Если задано, переопределяет значения параметра customization. | |
| customvalues - добавлено в 2.3 | Определяет список пользовательских значений для установки на виртуальной машине. Объект пользовательского значения содержит два поля key и value.Неправильные ключи и значения будут проигнорированы. | |
| datacenter - | По умолчанию: "ha-datacenter" | Целевой центр обработки данных для операции развертывания. Этот параметр чувствителен к регистру. |
| datastore - добавлено в 2.7 | Укажите хранилище данных или кластер хранилищ данных для подготовки виртуальной машины. Это будет иметь приоритет над параметром "disk.datastore". Этот параметр полезен для переопределения настроек хранилища данных или кластера хранилищ данных. Например, когда у пользователя есть разные хранилища данных или кластеры хранилищ данных для шаблонов и виртуальных машин. См. пример для более подробного использования. | |
| disk - | Список дисков для добавления. Этот параметр чувствителен к регистру. Изменение размера дисков не поддерживается. Удаление существующих дисков виртуальной машины не поддерживается. Допустимые атрибуты: - size_[tb,gb,mb,kb] (целое число): Размер хранилища диска в указанных единицах.- type (строка): Допустимые значения:- thin тонкий диск- eagerzeroedthick толстый диск с нулевым заполнением, добавлено в версии 2.5По умолчанию: None толстый диск, без нулевого заполнения.- datastore (строка): Хранилище данных для использования для диска. Если autoselect_datastore включено, фильтруйте выбор хранилища данных.- autoselect_datastore (логическое значение): выбрать наименее используемое хранилище данных. Указывать только если datastore не указан.- disk_mode (строка): Тип режима диска. Добавлено в версии 2.6- Доступные варианты: - persistent: Изменения немедленно и постоянно записываются на виртуальный диск. Это значение по умолчанию.- independent_persistent: То же, что и постоянное, но не затрагивает снимки.- independent_nonpersistent: Изменения виртуального диска выполняются в журнале переопределения и удаляются при выключении, но не затрагивают снимки. | |
| esxi_hostname - | Имя хоста ESXi, на котором будет запущена виртуальная машина. Этот параметр обязателен, если cluster не задан.esxi_hostname и cluster — взаимоисключающие параметры.Этот параметр чувствителен к регистру. | |
| folder - | Целевой каталог, абсолютный путь для поиска существующего гостя или создания нового гостя. Каталог должен включать центр обработки данных. Центр обработки данных ESX — ha-datacenter. Этот параметр чувствителен к регистру. Этот параметр обязателен при развертывании новой виртуальной машины. версия_добавления 2.5. Если найдено несколько машин с одинаковым именем, этот параметр используется для идентификации уникальности виртуальной машины. версия_добавления 2.5 Примеры: 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 boolean |
| Игнорировать предупреждения и выполнить действия. Этот параметр полезен при удалении виртуальной машины, которая находится в активном состоянии. Этот модуль отражает рабочий процесс API и пользовательского интерфейса VMware vCenter, поэтому в некоторых случаях флаг `force` будет обязательным для выполнения действия, чтобы убедиться, что действие выполняется независимо от последствий. Это особенно верно для удаления виртуальной машины, которая включена, когда state установлено в absent. |
| guest_id - добавлено в 2.3 | Установите идентификатор гостя. Этот параметр чувствителен к регистру. Примеры: виртуальная машина с RHEL7 64 бит будет 'rhel7_64Guest' виртуальная машина с CentOS 64 бит будет 'centos64Guest' виртуальная машина с Ubuntu 64 бит будет 'ubuntu64Guest' Это поле необходимо при создании виртуальной машины. Допустимые значения указаны здесь: http://pubs.vmware.com/vsphere-6-5/topic/com.vmware.wssdk.apiref.doc/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html
|
| аппаратное обеспечение - | Управление атрибутами аппаратного обеспечения виртуальной машины. Все параметры чувствительны к регистру. Допустимые атрибуты: - hotadd_cpu (boolean): Разрешить добавление виртуальных процессоров во время работы виртуальной машины.- hotremove_cpu (boolean): Разрешить удаление виртуальных процессоров во время работы виртуальной машины. version_added: 2.5- hotadd_memory (boolean): Разрешить добавление памяти во время работы виртуальной машины.- memory_mb (integer): Количество памяти в МБ.- nested_virt (bool): Включить вложенную виртуализацию. version_added: 2.5- num_cpus (integer): Количество процессоров.- num_cpu_cores_per_socket (integer): Количество ядер на сокет. Значение должно быть кратно num_cpus.- scsi (string): Допустимые значения: buslogic, lsilogic, lsilogicsas и paravirtual (по умолчанию).- memory_reservation (integer): Количество памяти в МБ для ограничения ресурсов памяти. version_added: 2.5- memory_reservation_lock (boolean): Если установлено в true, резервирование ресурсов памяти для виртуальной машины всегда будет равно размеру памяти виртуальной машины. version_added: 2.5- max_connections (integer): Максимальное количество активных удаленных подключений дисплея для виртуальных машин. version_added: 2.5.- mem_limit (integer): Использование памяти виртуальной машины не превысит этот лимит. Единица измерения — МБ. version_added: 2.5- mem_reservation (integer): Количество ресурсов памяти, гарантированно доступных виртуальной машине. Единица измерения — МБ. version_added: 2.5- cpu_limit (integer): Использование ЦП виртуальной машины не превысит этот лимит. Единица измерения — МГц. version_added: 2.5- cpu_reservation (integer): Количество ресурсов ЦП, гарантированно доступных виртуальной машине. Единица измерения — МГц. version_added: 2.5- version (integer): Версии аппаратного обеспечения виртуальной машины. По умолчанию 10 (ESXi 5.5 и выше). Обратитесь к документации VMware для получения правильной версии аппаратного обеспечения виртуальной машины. Неправильная версия аппаратного обеспечения может привести к сбою при развертывании. Если версия аппаратного обеспечения уже равна заданной версии, никаких действий не выполняется. version_added: 2.6- boot_firmware (string): Выберите, какой загрузчик должен использоваться для загрузки виртуальной машины. Допустимые значения: «bios» и «efi». version_added: 2.7 | |
| имя хоста строка | Имя хоста или IP-адрес сервера vCenter или ESXi vSphere. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения VMWARE_HOST.Поддержка переменных окружения добавлена в версии 2.6. | |
| является_шаблоном логическое добавлено в 2.3 |
| Отметить экземпляр как шаблон. Это пометит данную виртуальную машину как шаблон. |
| связанный_клон логическое добавлено в 2.4 |
| Создавать ли связанный клон из указанного снимка? Если указано, то параметр snapshot_src является обязательным. |
| имя - / обязательно | Имя виртуальной машины для работы. Имена виртуальных машин в vCenter не обязательно уникальны, что может быть проблематично, см. name_match.Если существует несколько виртуальных машин с одинаковым именем, то folder является обязательным параметром для определения уникальности виртуальной машины.Этот параметр чувствителен к регистру, если state установлено в poweredon, poweredoff, present, restarted, suspended, и виртуальная машина не существует.Этот параметр чувствителен к регистру. | |
| сопоставление_имен - |
| Если существует несколько виртуальных машин, соответствующих имени, использовать первую или последнюю найденную. |
| сети - добавлено в 2.3 | Список сетей (в порядке расположения сетевых адаптеров). Удаление сетевых адаптеров не разрешено при переконфигурации виртуальной машины. Все параметры и имена объектов VMware чувствительны к регистру. Один из следующих параметров обязателен для каждой записи: - name (строка): Имя портгруппы или распределенной виртуальной портгруппы для этого интерфейса. При указании распределенной виртуальной портгруппы убедитесь, что заданная esxi_hostname или cluster ассоциирована с ней.- vlan (целое число): Номер VLAN для этого интерфейса.Необязательные параметры для каждой записи (используются для виртуального оборудования): - device_type (строка): Виртуальное сетевое устройство (одно из e1000, e1000e, pcnet32, vmxnet2, vmxnet3 (по умолчанию), sriov).- mac (строка): Настройка MAC-адреса.- dvswitch_name (строка): Имя распределенного vSwitch. Это значение требуется, если существует несколько распределенных портгрупп с одинаковым именем. version_added 2.7Необязательные параметры для каждой записи (используются для настройки ОС): - type (строка): Тип назначения IP-адреса (либо dhcp, либо static). dhcp — по умолчанию.- ip (строка): Статический IP-адрес (подразумевает type: static).- netmask (строка): Статическая маска сети, необходимая для ip.- gateway (строка): Статический шлюз.- dns_servers (строка): Серверы DNS для этого сетевого интерфейса (Windows).- domain (строка): Имя домена для этого сетевого интерфейса (Windows).- wake_on_lan (bool): Указывает, включен ли wake-on-LAN на этом виртуальном сетевом адаптере. version_added: 2.5- start_connected (bool): Указывает, что виртуальный сетевой адаптер запускается вместе с включением виртуальной машины. version_added: 2.5- allow_guest_control (bool): Включает управление гостевой системой над тем, подключено ли соединяемое устройство. version_added: 2.5 | |
| пароль строка | Пароль сервера vCenter или ESXi vSphere. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения VMWARE_PASSWORD.Поддержка переменных окружения добавлена в версии 2.6. псевдонимы: pass, pwd | |
| порт целое число добавлено в 2.5 | По умолчанию: 443 | Номер порта сервера vCenter или ESXi vSphere. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения VMWARE_PORT.Поддержка переменных окружения добавлена в версии 2.6. |
| пул_ресурсов - добавлено в 2.3 | Использовать заданный пул ресурсов для работы виртуальной машины. Этот параметр чувствителен к регистру. Пул ресурсов должен быть дочерним по отношению к выбранному родительскому хосту. | |
| snapshot_src - добавлено в 2.4 | Имя существующего снимка для создания клона виртуальной машины. Этот параметр чувствителен к регистру. При создании связанного клона с помощью параметра linked_clone, этот параметр обязателен. |
| Состояние - |
| Укажите состояние виртуальной машины. Если state установлено в present и виртуальная машина существует, убедитесь, что конфигурация виртуальной машины соответствует аргументам задачи.Если state установлено в absent и виртуальная машина существует, то указанная виртуальная машина удаляется вместе с её компонентами.Если state установлено в одно из следующих значений poweredon, poweredoff, present, restarted, suspended и виртуальная машина не существует, то виртуальная машина развертывается с заданными параметрами.Если state установлено в poweredon и виртуальная машина существует с состоянием питания, отличным от включённого, то указанная виртуальная машина включается.Если state установлено в poweredoff и виртуальная машина существует с состоянием питания, отличным от выключенного, то указанная виртуальная машина выключается.Если state установлено в restarted и виртуальная машина существует, то виртуальная машина перезапускается.Если state установлено в suspended и виртуальная машина существует, то виртуальная машина переводится в режим приостановки.Если state установлено в shutdownguest и виртуальная машина существует, то виртуальная машина выключается.Если state установлено в rebootguest и виртуальная машина существует, то виртуальная машина перезагружается. |
| state_change_timeout - добавлен в 2.6 | Значение по умолчанию: 0 | Если state установлено в shutdownguest, по умолчанию модуль вернётся сразу после отправки сигнала выключения.Если этот аргумент установлен на положительное целое число, модуль вместо этого будет ожидать, пока виртуальная машина достигнет состояния выключенного. Значение задаёт таймаут в секундах для ожидания модулем изменения состояния. |
| шаблон - | Шаблон или существующая виртуальная машина, используемая для создания новой виртуальной машины. Если это значение не задано, виртуальная машина создаётся без использования шаблона. Если виртуальная машина уже существует, этот параметр будет проигнорирован. Этот параметр чувствителен к регистру. псевдонимы: template_src | |
| имя пользователя строка | Имя пользователя сервера vCenter vSphere или ESXi. Если значение не указано в задаче, вместо этого будет использовано значение переменной окружения VMWARE_USER. Поддержка переменных окружения добавлена в версии 2.6. псевдонимы: admin, user | |
| uuid - | UUID виртуальной машины для управления, если известен, это уникальный идентификатор VMware. Это требуется, если name не указано.Если виртуальная машина не существует, этот параметр игнорируется. Обратите внимание, что предоставленный UUID будет проигнорирован при создании виртуальной машины, так как VMware создаёт UUID внутренне. | |
| validate_certs логическое значение |
| Разрешает подключение, когда сертификаты SSL недействительны. Установите в false при недоверии к сертификатам.Если значение не указано в задаче, вместо этого будет использовано значение переменной окружения VMWARE_VALIDATE_CERTS. Поддержка переменных окружения добавлена в версии 2.6. Если установлено в yes, убедитесь, что на данном компьютере установлен Python >= 2.7.9. |
| vapp_properties - добавлен в 2.6 | Список свойств vApp Полный список атрибутов и типов см. на странице: https://github.com/vmware/pyvmomi/blob/master/docs/vim/vApp/PropertyInfo.rst
Основные атрибуты: - id (строка): Идентификатор свойства - обязателен.- value (строка): Значение свойства.- type (строка): Тип значения, по умолчанию тип строка.- operation: remove: Этот атрибут требуется только при удалении свойств. | |
| ждать IP-адрес логическое значение |
| Ожидать, пока vCenter не обнаружит IP-адрес для виртуальной машины. Для правильной работы требуется vmware-tools (vmtoolsd) после создания. Для работы с этим параметром vmware-tools необходимо установить на данной виртуальной машине. |
Примечания
Примечание
- Убедитесь, что пользователь, используемый для vmware_guest, имеет соответствующий уровень привилегий.
- Например, ниже приведён список минимальных привилегий, необходимых пользователям для создания виртуальных машин.
- Хранилище данных > Выделить место
- Виртуальная машина > Настройка > Добавить новый диск
- Виртуальная машина > Настройка > Добавить или удалить устройство
- Виртуальная машина > Инвентаризация > Создать новую
- Сеть > Назначить сеть
- Ресурс > Назначить виртуальную машину пулу ресурсов
- Модуль может потребовать дополнительных привилегий, которые могут потребоваться для сбора фактов — например, конфигураций ESXi.
- Тестировалось на vSphere 5.5, 6.0 и 6.5
- Дополнительную информацию можно найти на вики-странице сообщества Ansible VMware - https://github.com/ansible/community/wiki/VMware.
Примеры
- name: Create a virtual machine on given ESXi hostname
vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: no
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: yes
delegate_to: localhost
register: deploy_vm
- name: Create a virtual machine from a template
vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: no
folder: /testvms
name: testvm_2
state: poweredon
template: template_el7
disk:
- size_gb: 10
type: thin
datastore: g73_datastore
hardware:
memory_mb: 512
num_cpus: 6
num_cpu_cores_per_socket: 3
scsi: paravirtual
memory_reservation: 512
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:
type: iso
iso_path: "[datastore1] livecd.iso"
networks:
- name: VM Network
mac: aa:bb:dd:aa:00:14
wait_for_ip_address: yes
delegate_to: localhost
register: deploy
- name: Clone a virtual machine from Windows template and customize
vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: no
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: yes
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
vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: no
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)
vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: no
uuid: "{{ vm_uuid }}"
name: new_name
state: present
delegate_to: localhost
- name: Remove a virtual machine by uuid
vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: no
uuid: "{{ vm_uuid }}"
state: absent
delegate_to: localhost
- name: Manipulate vApp properties
vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: no
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
vmware_guest:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: no
uuid: "{{ vm_uuid }}"
state: poweredoff
delegate_to: localhost
- name: Deploy a virtual machine in a datastore different from the datastore of the template
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
Возвращаемые значения
Общие возвращаемые значения документированы здесь, следующие — поля, уникальные для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| instance словарь | всегда | метаданные о новой виртуальной машине Пример: None |
Статус
- Гарантируется, что у этого модуля не будет обратной совместимости. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- Loic Blot (@nerzhul) <loic.blot@unix-experience.fr>
- Philippe Dellaert (@pdellaert) <philippe@dellaert.org>
- Abhijeet Kasurde (@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.7/modules/vmware_guest_module.html