proxmox_kvm – Управление виртуальными машинами Qemu(KVM) в кластере Proxmox VE
Новая в версии 2.3.
Описание
- Позволяет создавать/удалять/останавливать виртуальные машины Qemu(KVM) в кластере Proxmox VE.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- proxmoxer
- requests
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| acpi boolean |
| Указывает, должен ли быть включён/выключен ACPI. |
| agent boolean |
| Указывает, должен ли быть включён/выключен агент QEMU Guest. |
| api_host - / обязательно | Указывает целевой хост кластера Proxmox VE. | |
| api_password - | Указывает пароль для аутентификации. Можно использовать переменную среды PROXMOX_PASSWORD. | |
| api_user - / обязательно | Указывает пользователя для аутентификации. | |
| args - | По умолчанию: "-serial unix:/var/run/qemu-server/VMID.serial,server,nowait" | Передает произвольные аргументы в kvm. Этот параметр предназначен только для экспертов! |
| autostart boolean |
| Указывает, должен ли виртуальный компьютер автоматически перезапускаться после сбоя (в настоящее время игнорируется в PVE API). |
| balloon - | По умолчанию: 0 | Указывает объём ОЗУ для виртуального компьютера в МБ. Использование нуля отключает драйвер balloon. |
| bios - |
| Указывает реализацию BIOS. |
| boot - | По умолчанию: "cnd" | Указывает порядок загрузки — с флоппи-диска a, жесткого диска c, CD-ROM d, или сети n. Можно комбинировать для задания порядка. |
| bootdisk - | Включить загрузку со указанного диска. (ide|sata|scsi|virtio\d+) | |
| clone - | Имя виртуального компьютера для клонирования. Если vmid установлено, clone может принимать произвольное значение, но оно необходимо для инициирования клонирования. | |
| cores - | По умолчанию: 1 | Указывает количество ядер на сокет. |
| cpu - | По умолчанию: "kvm64" | Указывает тип эмулируемого процессора. |
| cpulimit - | Указывает, будет ли ограничено использование процессора. Значение 0 указывает на отсутствие ограничения по использованию процессора. Если компьютер имеет 2 процессора, у него есть общее время процессора '2'. | |
| cpuunits - | По умолчанию: 1000 | Указывает вес процессора для виртуального компьютера. Можно отключить конфигурацию планировщика справедливости, установив это значение в 0 |
| delete - | Указывает список настроек, которые нужно удалить. | |
| description - | Указывает описание для виртуального компьютера. Используется только в веб-интерфейсе конфигурации. Сохраняется как комментарий в файле конфигурации. | |
| digest - | Указывает, нужно ли предотвратить изменения, если в текущем файле конфигурации другой дайджест SHA1. Это можно использовать для предотвращения одновременных изменений. | |
| force boolean |
| Разрешить принудительную остановку виртуального компьютера. Можно использовать только с состояниями stopped, restarted. |
| format - |
| Формат данных резервного файла целевого диска. Используется только при клонировании. |
| freeze boolean |
| Указывает, должен ли PVE заморозить процессор при запуске (используйте команду монитора 'c' для запуска выполнения). |
| full boolean |
| Создать полную копию всех дисков. Это всегда делается при клонировании обычного виртуального компьютера. Для шаблонов виртуальных машин по умолчанию мы пытаемся создать связанный клон. Используется только при клонировании. |
| hostpci - | Указывает хеш/словарь для сопоставления устройств PCI хоста с гостевыми устройствами. hostpci='{"key":"value", "key":"value"}'. Разрешенные ключи — hostpci[n], где 0 ≤ n ≤ N.Разрешенные значения — "host="HOSTPCIID[;HOSTPCIID2...]",pcie="1|0",rombar="1|0",x-vga="1|0"". Параметр host — это проброс устройства PCI хоста. Синтаксис HOSTPCIID — bus:dev.func\n(шестнадцатеричные числа).pcie=boolean по умолчанию=0 Выберите шину PCI-express (требуется модель машины q35).rombar=boolean по умолчанию=1 Указывает, будет ли ПЗУ устройства видно в карте памяти гостя.x-vga=boolean по умолчанию=0 Включить поддержку устройства vfio-vga./!\ Этот параметр позволяет получить прямой доступ к оборудованию хоста. Поэтому такие машины больше нельзя мигрировать — используйте с особой осторожностью. | |
| hotplug - | Выборочно включить функции hotplug. Это список горячих подключаемых функций, разделенных запятыми 'network', 'disk', 'cpu', 'memory' and 'usb'. Значение 0 полностью отключает hotplug, а значение 1 — псевдоним для стандартных значений 'network,disk,usb'. | |
| hugepages - |
| Включить/выключить огромные страницы памяти. |
| ide - | Хеш/словарь томов, используемых в качестве жестких дисков или CD-ROM IDE. ide='{"key":"value", "key":"value"}'. Разрешенные ключи — ide[n], где 0 ≤ n ≤ 3.Разрешенные значения — "storage:size,format=value". storage — это идентификатор хранилища, где нужно создать диск.size — размер диска в ГБ.format — формат данных резервного файла диска. qcow2|raw|subvol. | |
| keyboard - | Устанавливает раскладку клавиатуры для сервера VNC. | |
| kvm boolean |
| Включить/выключить виртуализацию аппаратного обеспечения KVM. |
| localtime boolean |
| Устанавливает реальные часы на местное время. Включено по умолчанию, если ostype указывает на операционную систему Microsoft. |
| lock - |
| Заблокировать/разблокировать виртуальный компьютер. |
| machine - | Указывает тип машины Qemu. type => (pc|pc(-i440fx?-\d+\.\d+(\.pxe)?|q35|pc-q35-\d+\.\d+(\.pxe)?)) | |
| memory - | По умолчанию: 512 | Размер памяти в МБ для экземпляра. |
| migrate_downtime - | Устанавливает максимальное допустимое время простоя (в секундах) для миграций. | |
| migrate_speed - | Устанавливает максимальную скорость (в МБ/с) для миграций. Значение 0 означает отсутствие ограничения. |
| имя - | Указывает имя ВМ. Используется только на веб-интерфейсе конфигурации. Требуется только для state=present. | |
| сеть - | Хэш/словарь сетевых интерфейсов для ВМ. net='{"key":"value", "key":"value"}'.Разрешенные ключи — net[n], где 0 ≤ n ≤ N.Разрешенные значения — "model="XX:XX:XX:XX:XX:XX",bridge="value",rate="value",tag="value",firewall="1|0",trunks="vlanid"". Модель — одна из e1000 e1000-82540em e1000-82544gc e1000-82545em i82551 i82557b i82559er ne2k_isa ne2k_pci pcnet rtl8139 virtio vmxnet3.XX:XX:XX:XX:XX:XX должен быть уникальным MAC-адресом. Автоматически генерируется, если не указан.Параметр bridge может использоваться для автоматического добавления интерфейса к устройству моста. Стандартный мост Proxmox VE называется 'vmbr0'.Опция rate используется для ограничения пропускной способности трафика входящего и исходящего из этого интерфейса. Указывается как число с плавающей точкой, единица измерения — 'мегабайты в секунду'.Если вы не указываете мост, мы создаём сетевое устройство kvm 'user' (NAT), предоставляющее DHCP и DNS-сервисы. | |
| новый_идентификатор - | VMID для клона. Используется только с клоном. Если newid не задан, следующий доступный идентификатор ВМ будет получен из ProxmoxAPI. | |
| узел - | Узел Proxmox VE, где будет создана новая ВМ. Требуется только для state=present.В других состояниях он будет автоматически обнаружен. | |
| numa - | Хэш/словари топологии NUMA. numa='{"key":"value", "key":"value"}'.Разрешенные ключи — numa[n], где 0 ≤ n ≤ N.Разрешенные значения — "cpu="<id[-id];...>",hostnodes="<id[-id];...>",memory="number",policy="(bind|interleave|preferred).cpus ЦП, обращающиеся к этому узлу NUMA.hostnodes Узлы NUMA хоста для использования.memory Объём памяти, предоставляемый этим узлом NUMA.policy Политика выделения NUMA. | |
| при_загрузке boolean |
| Указывает, будет ли ВМ запущена при загрузке системы. |
| тип_гостя - |
| Указывает гостевую операционную систему. Используется для включения специальной оптимизации/функций для определённых операционных систем. l26 — ядро Linux 2.6/3.X. |
| параллельно - | Хэш/словарь карты устройств параллельных хостов. parallel='{"key":"value", "key":"value"}'.Разрешенные ключи — (parallel[n]), где 0 ≤ n ≤ 2. Разрешенные значения — "/dev/parport\d+|/dev/usb/lp\d+". | |
| пул - | Добавить новую ВМ в указанный пул. | |
| защита boolean |
| Включить/выключить флаг защиты ВМ. Это включит/выключит операции удаления ВМ и удаления дисков. |
| перезагрузка boolean |
| Разрешить перезагрузку. Если установлено yes, ВМ завершит работу при перезагрузке. |
| восстановить - | Восстановить ожидаемое изменение. | |
| sata - | Хэш/словарь томов, используемых в качестве жёсткого диска SATA или CD-ROM. sata='{"key":"value", "key":"value"}'.Разрешенные ключи — sata[n], где 0 ≤ n ≤ 5.Разрешенные значения — "storage:size,format=value".storage — идентификатор хранилища, где создать диск.size — размер диска в ГБ.format — формат данных файла резервного копирования диска. qcow2|raw|subvol. | |
| scsi - | Хэш/словарь томов, используемых в качестве SCSI жёсткого диска или CD-ROM. scsi='{"key":"value", "key":"value"}'.Разрешенные ключи — sata[n], где 0 ≤ n ≤ 13.Разрешенные значения — "storage:size,format=value".storage — идентификатор хранилища, где создать диск.size — размер диска в ГБ.format — формат данных файла резервного копирования диска. qcow2|raw|subvol. | |
| scsihw - |
| Указывает модель контроллера SCSI. |
| последовательный - | Хэш/словарь последовательного устройства для создания внутри ВМ. '{"key":"value", "key":"value"}'.Разрешенные ключи — serial[n](str; требуется), где 0 ≤ n ≤ 3. Разрешенные значения — (/dev/.+|socket)./!\ Если вы используете последовательное устройство хоста, миграция таких машин больше невозможна — используйте с особой осторожностью. | |
| разделяемые - | Количество долей памяти для автоматического изменения размера. (0 - 50000). Чем больше число, тем больше памяти получает эта ВМ. Число относительно весов всех других работающих ВМ. Использование 0 отключает автоматическое изменение размера, то есть ограничений нет. | |
| пропустить_блокировку - | Игнорировать блокировки Только root разрешено использовать эту опцию. | |
| smbios - | Указывает поля типа 1 SMBIOS. | |
| имя_снимка - | Имя снимка. Используется только с клоном. | |
| сокеты - | По умолчанию: 1 | Устанавливает количество сокетов ЦП. (1 - N). |
| начальная_дата - | Устанавливает начальную дату реальных часов. Допустимые форматы дат — 'now' или '2016-09-25T16:01:21' или '2016-09-25'. | |
| запуск - | Поведение при запуске и выключении. [[order=]\d+] [,up=\d+] [,down=\d+].Порядок — положительное число, определяющее общий порядок запуска. Выключение выполняется в обратном порядке. | |
| состояние - |
| Указывает желаемое состояние экземпляра. Если current, текущее состояние ВМ будет получено. Вы можете получить его с помощью results.status
|
| хранилище - | Целевое хранилище для полного клона. | |
| планшет boolean |
| Включает/отключает устройство планшета USB. |
| цель - | Целевой узел. Разрешено только если исходная ВМ находится на общем хранилище. Используется только с клоном. | |
| tdf boolean |
| Включает/выключает исправление смещения времени. |
| шаблон boolean |
| Включает/выключает шаблон. |
| таймаут - | По умолчанию: 30 | Таймаут для операций. |
| обновить boolean |
| Если yes, ВМ будет обновлена новым значением.Из-за операций API и соображений безопасности я отключил обновление следующих параметров net, virtio, ide, sata, scsi. Например, обновление net обновляет MAC-адрес и virtio всегда создаёт новый диск... |
| validate_certs boolean |
| Если no, сертификаты SSL не будут проверены. Это следует использовать только на сайтах, контролируемых лично, использующих самозаверенные сертификаты. |
| vcpus - | Устанавливает количество горячих vcpu. | |
| vga - |
| Выберите тип VGA. Если вы хотите использовать режимы высокой разрешающей способности (>= 1280x1024x16), то следует использовать опцию 'std' или 'vmware'. |
| virtio - | Хэш/словарь тома, используемого в качестве виртуального жесткого диска VIRTIO. virtio='{"key":"value", "key":"value"}'. Разрешенные ключи - virto[n], где 0 ≤ n ≤ 15.Разрешенные значения - "storage:size,format=value". storage - идентификатор хранилища, где будет создан диск.size - размер диска в ГБ.format - формат данных файла поддержки диска. qcow2|raw|subvol. | |
| vmid - | Указывает идентификатор виртуальной машины. Вместо этого используйте параметр name. Если vmid не задан, следующий доступный идентификатор виртуальной машины будет получен из ProxmoxAPI. | |
| watchdog - | Создает виртуальное устройство наблюдения за работой. |
Примеры
# Create new VM with minimal options
- proxmox_kvm:
api_user : root@pam
api_password: secret
api_host : helldorado
name : spynal
node : sabrewulf
# Create new VM with minimal options and given vmid
- proxmox_kvm:
api_user : root@pam
api_password: secret
api_host : helldorado
name : spynal
node : sabrewulf
vmid : 100
# Create new VM with two network interface options.
- proxmox_kvm:
api_user : root@pam
api_password: secret
api_host : helldorado
name : spynal
node : sabrewulf
net : '{"net0":"virtio,bridge=vmbr1,rate=200", "net1":"e1000,bridge=vmbr2,"}'
# Create new VM with one network interface, three virto hard disk, 4 cores, and 2 vcpus.
- proxmox_kvm:
api_user : root@pam
api_password: secret
api_host : helldorado
name : spynal
node : sabrewulf
net : '{"net0":"virtio,bridge=vmbr1,rate=200"}'
virtio : '{"virtio0":"VMs_LVM:10", "virtio1":"VMs:2,format=qcow2", "virtio2":"VMs:5,format=raw"}'
cores : 4
vcpus : 2
# Clone VM with only source VM name
- proxmox_kvm:
api_user : root@pam
api_password: secret
api_host : helldorado
clone : spynal # The VM source
name : zavala # The target VM name
node : sabrewulf
storage : VMs
format : qcow2
timeout : 500 # Note: The task can take a while. Adapt
# Clone VM with source vmid and target newid and raw format
- proxmox_kvm:
api_user : root@pam
api_password: secret
api_host : helldorado
clone : arbitrary_name
vmid : 108
newid : 152
name : zavala # The target VM name
node : sabrewulf
storage : LVM_STO
format : raw
timeout : 300 # Note: The task can take a while. Adapt
# Create new VM and lock it for snapashot.
- proxmox_kvm:
api_user : root@pam
api_password: secret
api_host : helldorado
name : spynal
node : sabrewulf
lock : snapshot
# Create new VM and set protection to disable the remove VM and remove disk operations
- proxmox_kvm:
api_user : root@pam
api_password: secret
api_host : helldorado
name : spynal
node : sabrewulf
protection : yes
# Start VM
- proxmox_kvm:
api_user : root@pam
api_password: secret
api_host : helldorado
name : spynal
node : sabrewulf
state : started
# Stop VM
- proxmox_kvm:
api_user : root@pam
api_password: secret
api_host : helldorado
name : spynal
node : sabrewulf
state : stopped
# Stop VM with force
- proxmox_kvm:
api_user : root@pam
api_password: secret
api_host : helldorado
name : spynal
node : sabrewulf
state : stopped
force : yes
# Restart VM
- proxmox_kvm:
api_user : root@pam
api_password: secret
api_host : helldorado
name : spynal
node : sabrewulf
state : restarted
# Remove VM
- proxmox_kvm:
api_user : root@pam
api_password: secret
api_host : helldorado
name : spynal
node : sabrewulf
state : absent
# Get VM current state
- proxmox_kvm:
api_user : root@pam
api_password: secret
api_host : helldorado
name : spynal
node : sabrewulf
state : current
# Update VM configuration
- proxmox_kvm:
api_user : root@pam
api_password: secret
api_host : helldorado
name : spynal
node : sabrewulf
cores : 8
memory : 16384
update : yes
# Delete QEMU parameters
- proxmox_kvm:
api_user : root@pam
api_password: secret
api_host : helldorado
name : spynal
node : sabrewulf
delete : 'args,template,cpulimit'
# Revert a pending change
- proxmox_kvm:
api_user : root@pam
api_password: secret
api_host : helldorado
name : spynal
node : sabrewulf
revert : 'template,cpulimit'
Значения возврата
Общие значения возврата описаны здесь, следующие — поля, уникальные для данного модуля:
| Ключ | Возвращённое значение | Описание |
|---|---|---|
| devices словарь | успех | Список созданных или используемых устройств. Пример: { "ide0": "VMS_LVM:vm-115-disk-1", "ide1": "VMs:115/vm-115-disk-3.raw", "virtio0": "VMS_LVM:vm-115-disk-2", "virtio1": "VMs:115/vm-115-disk-1.qcow2", "virtio2": "VMs:115/vm-115-disk-2.raw" } |
| mac словарь | успех | Список созданных MAC-адресов и подключений net[n]. Полезно при использовании систем подготовки, таких как Foreman через PXE. Пример: { "net0": "3E:6E:97:D2:31:9F", "net1": "B6:A1:FC:EF:78:A4" } |
| status словарь | успех | Текущее состояние виртуальной машины. Возвращается только когда state=current.
Пример: { "changed": false, "msg": "Виртуальная машина kropta с vmid = 110 запущена", "status": "запущена" } |
| vmid целое число | успех | Идентификатор виртуальной машины. Пример: 115 |
Состояние
- Данный модуль не гарантирует обратную совместимость. [предварительная версия]
- Данный модуль поддерживается сообществом Ansible. [community]
Авторы
- Abdoul Bah (@helldorado) <bahabdoul at gmail.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.8/modules/proxmox_kvm_module.html