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 (строка): Имя владельца сервера (по умолчанию: Administrator).- 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" | Целевой дата-центр для операции развертывания. Этот параметр чувствителен к регистру. |
| disk | Список дисков для добавления. Этот параметр чувствителен к регистру. Изменение размера дисков не поддерживается. Удаление существующих дисков виртуальной машины не поддерживается. Допустимые атрибуты: - size_[tb,gb,mb,kb] (целое число): Размер хранилища диска в указанных единицах.- type (строка): Допустимые значения:- thin тонкий диск- eagerzeroedthick диск eagerzerothick, добавлено в версии 2.5По умолчанию: None толстый диск, без eagerzero.- datastore (строка): Хранилище для использования диска. Если autoselect_datastore включено, выполняется фильтрация выбора хранилища.- autoselect_datastore (логическое): выбрать наименее используемое хранилище. Указывать только если datastore не задан. | |
| 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 bool |
| Игнорировать предупреждения и завершить действия. Этот параметр полезен при удалении виртуальной машины, которая находится в рабочем состоянии. Этот модуль отражает рабочий процесс VMware vCenter API и пользовательского интерфейса, поэтому в некоторых случаях флаг `force` будет обязателен для выполнения действия, чтобы убедиться, что действие будет выполнено независимо от последствий. Это особенно важно для удаления работающей виртуальной машины, когда state установлено в absent. |
| guest_id (добавлено в 2.3) | Установите идентификатор гостя. Этот параметр чувствителен к регистру. Примеры: виртуальная машина с RHEL7 64 бит, будет 'rhel7_64Guest' виртуальная машина с CensOS 64 бит, будет 'centos64Guest' виртуальная машина с Ubuntu 64 бит, будет 'ubuntu64Guest' Это поле обязательно при создании виртуальной машины. Допустимые значения указаны здесь: http://pubs.vmware.com/vsphere-6-5/topic/com.vmware.wssdk.apiref.doc/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html
| |
| hardware | Управление аппаратными атрибутами виртуальной машины. Все параметры чувствительны к регистру. Допустимые атрибуты: - hotadd_cpu (логическое): Разрешить добавление виртуальных процессоров во время работы виртуальной машины.- hotremove_cpu (логическое): Разрешить удаление виртуальных процессоров во время работы виртуальной машины. версия_добавлена: 2.5- hotadd_memory (логическое): Разрешить добавление памяти во время работы виртуальной машины.- memory_mb (целое число): Объем памяти в МБ.- nested_virt (логическое): Включить вложенную виртуализацию. версия_добавлена: 2.5- num_cpus (целое число): Количество процессоров.- num_cpu_cores_per_socket (целое число): Количество ядер на процессор. Значение должно быть кратно num_cpus.- scsi (строка): Допустимые значения buslogic, lsilogic, lsilogicsas и paravirtual (по умолчанию).- memory_reservation (целое число): Объем памяти в МБ для задания ограничений ресурсов памяти. версия_добавлена: 2.5- memory_reservation_lock (логическое): Если установлено в true, резервирование ресурсов памяти для виртуальной машины всегда будет равно размеру памяти виртуальной машины. версия_добавлена: 2.5- max_connections (целое число): Максимальное количество активных подключений удаленного дисплея для виртуальных машин. версия_добавлена: 2.5.- mem_limit (целое число): Использование памяти виртуальной машины не превысит этого предела. Единица — МБ. версия_добавлена: 2.5- mem_reservation (целое число): Количество гарантируемой памяти, доступной для виртуальной машины. Единица — МБ. версия_добавлена: 2.5- cpu_limit (целое число): Использование процессора виртуальной машины не превысит этого предела. Единица — МГц. версия_добавлена: 2.5- cpu_reservation (целое число): Количество гарантируемых ресурсов процессора, доступных для виртуальной машины. Единица — МГц. версия_добавлена: 2.5- version (целое число): Версия аппаратного обеспечения виртуальной машины. По умолчанию 10 (ESXi 5.5 и выше). Пожалуйста, проверьте документацию VMware для правильной версии аппаратного обеспечения виртуальной машины. Неправильная версия аппаратного обеспечения может привести к сбою развертывания. Если версия аппаратного обеспечения уже равна заданной версии, никаких действий не выполняется. версия_добавлена: 2.6 |
| имя хоста str | Имя хоста или IP-адрес сервера vCenter или ESXi vSphere. Если значение не указано в задаче, используется значение переменной среды VMWARE_HOST. Поддержка переменных среды добавлена в версии 2.6. | |
| является_шаблоном bool (добавлено в 2.3) |
| Пометить экземпляр как шаблон. Это пометит данный виртуальный компьютер как шаблон. |
| связанный_клонирование bool (добавлено в 2.4) |
| Создавать ли связанный клон из указанного момента сохранения? |
| имя обязательно | Имя виртуальной машины для работы. Имена виртуальных машин в 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-адрес.Необязательные параметры на запись (используются для настройки ОС): - 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 | |
| пароль str | Пароль сервера vCenter или ESXi vSphere. Если значение не указано в задаче, используется значение переменной среды VMWARE_PASSWORD. Поддержка переменных среды добавлена в версии 2.6. псевдонимы: pass, pwd | |
| порт int (добавлено в 2.5) | Значение по умолчанию: 443 | Номер порта сервера vCenter или ESXi vSphere. Если значение не указано в задаче, используется значение переменной среды VMWARE_PORT. Поддержка переменных среды добавлена в версии 2.6. |
| пул_ресурсов (добавлено в 2.3) | Использовать указанный пул ресурсов для работы с виртуальной машиной. Этот параметр чувствителен к регистру. Пул ресурсов должен быть дочерним по отношению к выбранному родительскому хосту. | |
| источник_момента_сохранения (добавлено в 2.4) | Имя существующего момента сохранения для создания клона виртуальной машины. Этот параметр чувствителен к регистру. | |
| состояние |
| Укажите состояние виртуальной машины. Если state задано как present, и виртуальная машина существует, убедитесь, что конфигурация виртуальной машины соответствует аргументам задачи.Если state задано как absent, и виртуальная машина существует, то указанная виртуальная машина будет удалена вместе с её компонентами.Если state задано одним из следующих значений poweredon, poweredoff, present, restarted, suspended, и виртуальная машина не существует, то виртуальная машина будет развернута с указанными параметрами.Если state задано как poweredon, и виртуальная машина существует в состоянии, отличном от включённого, то указанная виртуальная машина будет включена.Если state задано как poweredoff, и виртуальная машина существует в состоянии, отличном от выключенного, то указанная виртуальная машина будет выключена.Если state задано как restarted, и виртуальная машина существует, то виртуальная машина будет перезагружена.Если state задано как suspended, и виртуальная машина существует, то виртуальная машина будет переведена в приостановленное состояние.Если state задано как shutdownguest, и виртуальная машина существует, то виртуальная машина будет выключена.Если state задано как rebootguest, и виртуальная машина существует, то виртуальная машина будет перезагружена. |
| таймаут_изменения_состояния (добавлено в 2.6) | Значение по умолчанию: 0 | Если state задано как shutdownguest, по умолчанию модуль возвращает значение немедленно после отправки сигнала выключения.Если этот аргумент задан как положительное целое число, модуль вместо этого ждёт, пока виртуальная машина достигнет состояния выключенного. Значение задаёт таймаут в секундах для ожидания модулем изменения состояния. |
| шаблон | Используемый шаблон или существующая виртуальная машина для создания новой виртуальной машины. Если это значение не задано, виртуальная машина создаётся без использования шаблона. Если виртуальная машина уже существует, этот параметр будет проигнорирован. Этот параметр чувствителен к регистру. псевдонимы: источник_шаблона | |
| имя_пользователя str | Имя пользователя сервера vCenter или ESXi vSphere. Если значение не указано в задаче, используется значение переменной среды VMWARE_USER. Поддержка переменных среды добавлена в версии 2.6. псевдонимы: admin, user | |
| uuid | UUID виртуальной машины для управления, если известен (уникальный идентификатор VMware). Это требуется, если name не указан.Если виртуальная машина не существует, этот параметр игнорируется. Обратите внимание, что предоставленный UUID будет проигнорирован при создании виртуальной машины, так как VMware создаёт UUID внутренне. | |
| проверять_сертификаты bool |
| Разрешает подключение, когда SSL-сертификаты недействительны. Установите в значение false, когда сертификаты не доверенны.Если значение не указано в задаче, используется значение переменной среды VMWARE_VALIDATE_CERTS. Поддержка переменных среды добавлена в версии 2.6. Если установлено значение yes, убедитесь, что на данном компьютере установлен Python >= 2.7.9. |
| свойства_vapp (добавлено в 2.6) | Список свойств vApp. Полный список атрибутов и типов см. на странице: https://github.com/vmware/pyvmomi/blob/master/docs/vim/vApp/PropertyInfo.rst
Основные атрибуты: - id (строка): Идентификатор свойства - обязателен.- value (строка): Значение свойства.- type (строка): Тип значения, по умолчанию строка.- operation: remove: Этот атрибут необходим только при удалении свойств. |
| wait_for_ip_address bool |
| Ожидать, пока 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_ip }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: False
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_ip }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: False
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
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 Template and customize
vmware_guest:
hostname: "{{ vcenter_ip }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: False
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: Rename a virtual machine (requires the virtual machine's uuid)
vmware_guest:
hostname: "{{ vcenter_ip }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: False
uuid: "{{ vm_uuid }}"
name: new_name
state: present
delegate_to: localhost
- name: Remove a virtual machine by uuid
vmware_guest:
hostname: "{{ vcenter_ip }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: False
uuid: "{{ vm_uuid }}"
state: absent
delegate_to: localhost
- name: Manipulate vApp properties
vmware_guest:
hostname: "{{ vcenter_ip }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: False
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
- name: Set powerstate of a virtual machine to poweroff by using UUID
vmware_guest:
hostname: "{{ vcenter_ip }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: False
uuid: "{{ vm_uuid }}"
state: poweredoff
delegate_to: localhost
Значения возврата
Общие значения возврата документированы здесь, следующие являются полями, уникальными для данного модуля:
| Ключ | Возвращено | Описание |
|---|---|---|
| instance dict | всегда | Метаданные о новой виртуальной машине Пример: Нет данных |
Статус
Этот модуль помечен как превью, что означает, что гарантии обратной совместимости интерфейса нет.
Техническое обслуживание
Этот модуль помечен как сообщество, что означает, что он поддерживается сообществом Ansible. Подробнее см. Техническое обслуживание и поддержка модулей.
Список других модулей, также поддерживаемых сообществом Ansible, см. здесь.
Автор
- Лоик Бло (@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.6/modules/vmware_guest_module.html