Модуль community.proxmox.proxmox_kvm — управление виртуальными машинами Qemu(KVM) в кластере Proxmox VE
Примечание
Этот модуль входит в коллекцию community.proxmox (версия 1.6.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.proxmox. Для использования этого модуля необходимы дополнительные зависимости; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.proxmox.proxmox_kvm.
Краткое описание
- Позволяет создавать, удалять и останавливать виртуальные машины Qemu(KVM) в кластере Proxmox VE.
Требования
Следующие требования необходимы на узле, на котором выполняется этот модуль.
- proxmoxer >= 2.0
- requests
Параметры
Параметр | Комментарии |
|---|---|
acpi boolean | Укажите, следует ли включить или отключить ACPI. Варианты:
|
agent string | Укажите, следует ли включить или отключить QEMU Guest Agent. |
api_host string / обязательный | Укажите целевой хост кластера Proxmox VE. Если значение не указано, используется переменная окружения |
api_password string | Укажите пароль для аутентификации. Если значение не указано, используется переменная окружения |
api_port integer | Укажите целевой порт кластера Proxmox VE. Если значение не указано, используется переменная окружения |
api_timeout integer | Ограничение времени для запросов к API Proxmox VE. По умолчанию: |
api_token_id string | Укажите идентификатор токена. Если значение не указано, используется переменная окружения |
api_token_secret string | Укажите секретный ключ токена. Если значение не указано, используется переменная окружения |
api_user string / обязательный | Укажите пользователя для аутентификации. Если значение не указано, используется переменная окружения |
archive string | Укажите путь к архиву для восстановления (вместо создания или клонирования виртуальной машины). |
args string | Передайте произвольные аргументы KVM. Эта опция предназначена только для опытных пользователей! |
audio dictionary | Хеш/словарь аудиоустройств для виртуальной машины. Допустимые ключи: Допустимые значения:
Параметр |
autostart boolean | Укажите, следует ли автоматически перезапускать виртуальную машину после сбоя (в настоящее время игнорируется API PVE). Варианты:
|
balloon integer | Укажите объем оперативной памяти виртуальной машины в МБ. Нулевое значение отключает драйвер balloon. |
bios string | Укажите реализацию BIOS. Варианты:
|
boot string | Укажите порядок загрузки: с дискеты В новых версиях Proxmox VE укажите порядок загрузки, например Можно объединить значения, чтобы задать порядок. Для сетевой загрузки с PVE 8.3.5 необходимо установить |
bootdisk string | Включите загрузку с указанного диска. Формат |
ca_path path | Путь к локальному сертификату, который будет использоваться для проверки TLS-соединений. Игнорируется, если |
cicustom string | Cloud-init: укажите пользовательские файлы, которыми при запуске будут заменены автоматически созданные файлы. |
cipassword string | Cloud-init: пароль создаваемого пользователя по умолчанию. |
citype string | Cloud-init: указывает формат конфигурации cloud-init. Значение по умолчанию зависит от настроенного типа операционной системы ( Для Linux используется формат Варианты:
|
ciupgrade boolean | Cloud-init: автоматически обновить пакеты после первой загрузки. Варианты:
|
ciuser string | Cloud-init: имя создаваемого пользователя по умолчанию. |
clone string | |
cores integer | Укажите количество ядер на сокет. |
cpu string | Укажите эмулируемый тип процессора. |
cpulimit integer | Укажите, будет ли ограничено использование процессора. Значение Если в компьютере 2 процессора, общее время CPU равно «2». |
cpuunits integer | Укажите вес CPU для виртуальной машины. Можно отключить настройку планировщика fair-scheduler, задав значение |
delete string | Укажите список параметров, которые требуется удалить. |
description string | Укажите описание виртуальной машины. Используется только в веб-интерфейсе конфигурации. Сохраняется в конфигурационном файле в виде комментария. |
digest string | Укажите, следует ли предотвращать изменения, если текущий конфигурационный файл имеет другой дайджест SHA1. Это можно использовать для предотвращения параллельного изменения конфигурации. |
efidisk0 dictionary | Укажите хеш/словарь параметров диска EFI. Для использования необходимо задать |
|
efitype string |
Варианты:
|
|
format string |
|
|
pre_enrolled_keys boolean |
Если задано значение Варианты:
|
|
storage string |
|
force boolean | Если задано значение При использовании с При использовании с Варианты:
|
format string | Формат данных файла-основы целевого диска. Используется только при клонировании. Для связанного клона используйте Сведения о форматах, поддерживаемых используемым серверным хранилищем, см. в руководстве администратора Proxmox VE, в разделе «Хранилище Proxmox VE» (последняя версия доступна по адресу https://pve.proxmox.com/pve-docs/chapter-pvesm.html, таблицы 3–14). Если этот параметр не указан, это эквивалентно заданию значения Варианты:
|
freeze boolean | Укажите, следует ли заморозить CPU при запуске PVE (для начала выполнения используйте команду монитора «c»). Варианты:
|
full boolean | Создать полную копию всех дисков. Это всегда выполняется при клонировании обычной виртуальной машины. Для шаблонов виртуальных машин по умолчанию создается связанный клон. Используется только при клонировании. Варианты:
|
hookscript string | Сценарий, который будет выполняться на различных этапах жизненного цикла контейнера. |
hostpci dictionary | Укажите хеш/словарь для сопоставления устройств PCI хоста с устройствами гостевой системы. Допустимые ключи: Допустимые значения: Параметр
/!\ Эта опция предоставляет прямой доступ к оборудованию хоста. Поэтому перенос таких машин становится невозможным — используйте ее с особой осторожностью. |
hotplug string | Выборочное включение функций горячего подключения. Это список функций горячего подключения, разделенных запятыми: Значение 0 полностью отключает горячее подключение, а значение 1 является псевдонимом значения по умолчанию |
hugepages string | Включите или отключите память на основе hugepages. Варианты:
|
ide dictionary | Хеш/словарь томов, используемых в качестве жесткого диска IDE или CD-ROM. Ключи должны иметь формат Значения — строки с параметрами, разделенными запятыми, в формате Примеры: Полный список доступных параметров см. в документации Proxmox VE (найдите «ide[n]:») по адресу https://pve.proxmox.com/pve-docs/chapter-qm.html#qm_options. |
ipconfig dictionary | Cloud-init: задайте конфигурацию IP. Хеш/словарь конфигураций сетевых IP-адресов. Допустимые ключи: Допустимые значения: Cloud-init: укажите IP-адреса и шлюзы для соответствующего интерфейса. Для IP-адресов используется запись CIDR. Шлюзы необязательны, но должны находиться в той же подсети, что и указанный IP-адрес. Для автоматического получения IP-адресов по DHCP можно использовать специальную строку Для IPv6 можно использовать специальную строку Если cloud-init включен, но не указан ни IPv4-, ни IPv6-адрес, по умолчанию для IPv4 используется DHCP. |
keyboard string | Задает раскладку клавиатуры для VNC-сервера. |
kvm boolean | Включите или отключите аппаратную виртуализацию KVM. Варианты:
|
localtime boolean | Устанавливает местное время для часов реального времени. По умолчанию параметр включен, если ostype указывает на ОС Microsoft. Варианты:
|
lock string | Заблокировать или разблокировать виртуальную машину. Варианты:
|
machine string | Указывает тип машины QEMU. Тип => Позволяет задать параметры [[type=]<тип машины>] [,enable-s3=<1|0>] [,enable-s4=<1|0>] [,viommu=<intel|virtio>]. |
memory integer | Объем памяти экземпляра в МБ. |
migrate boolean | |
migrate_downtime integer | Задает максимально допустимое время простоя (в секундах) при миграции. |
migrate_speed integer | Задает максимальную скорость (в МБ/с) при миграции. Значение 0 означает отсутствие ограничения. |
name string | Задает имя ВМ. Имя может быть неуникальным в пределах кластера. Требуется только для При |
nameservers list / elements=string | Cloud-init: IP-адреса DNS-серверов. Если параметр не задан, используются настройки узла PVE. |
net dictionary | Словарь сетевых интерфейсов ВМ. Ключи должны иметь вид Значения — строки с параметрами, разделенными запятыми, в формате Примеры:
Полный список доступных параметров см. в документации Proxmox VE (найдите «net[n]:») по адресу https://pve.proxmox.com/pve-docs/chapter-qm.html\#qm_options. |
newid integer | VMID клона. Используется только с clone. Если newid не задан, следующий доступный идентификатор ВМ будет получен из ProxmoxAPI. |
node string | Узел Proxmox VE, на котором выполняется операция. Требуется только для Для всех остальных состояний значение определяется автоматически. |
numa dictionary | Словарь топологии NUMA. Допустимые ключи: Допустимые значения:
|
numa_enabled boolean | Включает NUMA. Варианты:
|
onboot boolean | Указывает, следует ли запускать ВМ при загрузке системы. Варианты:
|
ostype string | Задает гостевую операционную систему. Этот параметр используется для включения специальных оптимизаций и функций для конкретных операционных систем. l26 — ядро Linux 2.6/3.X. Варианты:
|
parallel dictionary | Словарь сопоставлений параллельных устройств хоста. Допустимые ключи: parallel[n], где 0 ≤ n ≤ 2. Допустимые значения: |
pool string | Добавить новую ВМ в указанный пул. |
protection boolean | Включить или отключить флаг защиты ВМ. Это разрешит или запретит удаление ВМ и дисков. Варианты:
|
purge boolean | Удалить VMID из конфигураций, например заданий резервного копирования и репликации, а также HA. Используется с состоянием Варианты:
|
reboot boolean | Разрешить перезагрузку. Если установлено значение Варианты:
|
revert string | Отменить ожидающее изменение. |
rng0 string добавлено в community.proxmox 1.0.0 | Источник случайных данных для устройства RNG, например |
sata dictionary | Словарь томов, используемых в качестве жесткого диска SATA или CD-ROM. Ключи должны иметь вид Значения — строки с параметрами, разделенными запятыми, в формате Примеры: Полный список доступных параметров см. в документации Proxmox VE (найдите «sata[n]:») по адресу https://pve.proxmox.com/pve-docs/chapter-qm.html#qm_options. |
scsi dictionary | Словарь томов, используемых в качестве жесткого диска SCSI или CD-ROM. Ключи должны иметь вид Значения — строки с параметрами, разделенными запятыми, в формате Примеры: Полный список доступных параметров см. в документации Proxmox VE (найдите «scsi[n]:») по адресу https://pve.proxmox.com/pve-docs/chapter-qm.html#qm_options. |
scsihw string | Задает модель контроллера SCSI. Варианты:
|
searchdomains list / elements=string | Cloud-init: задает домены поиска DNS. Если параметр не задан, используются настройки узла PVE. |
serial dictionary | Словарь последовательных устройств, создаваемых в ВМ. Допустимые ключи: serial[n](str; required), где 0 ≤ n ≤ 3. Допустимые значения: /!\ При перенаправлении последовательного устройства хоста миграция таких машин становится невозможной — используйте этот параметр с особой осторожностью. |
integer | Задает объем общих ресурсов памяти для автоматического управления памятью (auto-ballooning). (0–50000). Чем больше число, тем больше памяти получает эта ВМ. Число рассчитывается относительно весовых коэффициентов всех остальных работающих ВМ. Значение 0 отключает автоматическое управление памятью, то есть снимает ограничения. |
skiplock boolean | Игнорировать блокировки. Использовать этот параметр может только root. Варианты:
|
smbios string | Задает поля SMBIOS типа 1. Свойства SMBIOS, разделенные запятыми и при необходимости закодированные в Base64:
|
snapname string | Имя снимка. Используется только с clone. |
sockets integer | Задает количество сокетов ЦП (1–N). |
sshkeys string | Cloud-init: открытые ключи SSH, назначаемые пользователю по умолчанию. Поддерживаются несколько ключей SSH, указанных в многострочном значении. Каждый ключ должен располагаться на отдельной строке в формате Чтобы указать несколько ключей, по одному на строку, используйте буквальный блочный скаляр YAML ( |
startdate string | Задает начальную дату часов реального времени. Допустимые форматы даты: |
startup string | Поведение при запуске и выключении. Order — неотрицательное число, задающее общий порядок запуска. Выключение выполняется в обратном порядке. |
state string | Указывает желаемое состояние экземпляра. Если задано
Варианты:
|
storage string | Целевое хранилище для полного клонирования. При восстановлении из архива — целевое хранилище для всех дисков. Если параметр не указан, будет использоваться расположение хранилища, заданное в архиве. |
tablet boolean | Включает или отключает USB-устройство планшета. Варианты:
|
tags list / elements=string | Список тегов, применяемых к экземпляру ВМ. Теги должны начинаться с Теги доступны только в Proxmox 6 и более поздних версиях. |
target string | Целевой узел. Допускается только в том случае, если исходная ВМ находится в общем хранилище. Используется только с clone. |
tdf boolean | Включает или отключает коррекцию рассинхронизации времени. Варианты:
|
template boolean | Включает или отключает шаблон. Варианты:
|
timeout integer | Тайм-аут операций в секундах. Если тайм-аут истекает при Если тайм-аут истекает при По умолчанию: |
tpmstate0 dictionary | Словарь параметров диска Trusted Platform Module. Для установки Windows 11 требуется диск состояния TPM. |
|
storage string / обязательный |
|
|
version string |
Используемая версия TPM. Варианты:
|
update boolean | Если задано Из-за особенностей работы API и по соображениям безопасности обновление следующих параметров отключено: Обновление Варианты:
|
update_unsafe boolean | |
usb dictionary | Словарь USB-устройств ВМ. Допустимые ключи: Допустимые значения: В качестве хоста можно указать Параметр Параметр |
validate_certs boolean | Проверять сертификаты TLS, используемые для подключения к API Proxmox VE. В настоящее время значение по умолчанию — Если параметр не указан, используется переменная окружения Варианты:
|
vcpus integer | Задает количество виртуальных ЦП, подключаемых «на горячую». |
vga string | Выберите тип VGA. Для использования режимов высокого разрешения (>= 1280x1024x16) следует использовать параметр Дополнительную информацию о допустимых значениях см. в руководстве администратора Proxmox VE, раздел «Виртуальные машины QEMU/KVM» (https://pve.proxmox.com/pve-docs/chapter-qm.html#qm_options). |
virtio dictionary | Хеш/словарь томов, используемых в качестве жёсткого диска или CD-ROM VIRTIO. Ключи должны иметь вид Значения представляют собой строки с параметрами, разделёнными запятыми, в формате Примеры: Полный список всех доступных параметров см. в документации Proxmox VE (найдите «virtio[n]:») по адресу https://pve.proxmox.com/pve-docs/chapter-qm.html#qm_options. |
vmid integer | Задаёт идентификатор экземпляра. Если параметр не задан, из ProxmoxAPI будет получен следующий доступный идентификатор. |
watchdog string | Создаёт виртуальное аппаратное устройство watchdog. |
with_local_disks boolean | Разрешает перенос локальных дисков на следующий узел. Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группа действий: community.proxmox.proxmox | Используйте |
check_mode | Поддержка: нет | Может работать в режиме |
diff_mode | Поддержка: нет | В режиме diff будут возвращены сведения об изменениях (или о том, что, возможно, необходимо изменить в |
См. также
См. также
- community.proxmox.proxmox_vm_info
-
Получение сведений об одной или нескольких виртуальных машинах Proxmox VE.
- Документация по виртуальным машинам QEMU/KVM в Proxmox VE
-
Документация по виртуальным машинам QEMU/KVM в Proxmox VE.
Примеры
- name: Create new VM with minimal options
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
node: sabrewulf
- name: Create a VM from archive (backup)
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
archive: backup-storage:backup/vm/140/2023-03-08T06:41:23Z
name: spynal
- name: Create new VM with minimal options and given vmid
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
node: sabrewulf
vmid: 100
- name: Create new VM with two network interface options
community.proxmox.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'
- name: Create new VM with one network interface, three virto hard disk, 4 cores, and 2 vcpus
community.proxmox.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
- name: Create VM with 1 10GiB SATA disk and an EFI disk, with Secure Boot disabled by default
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
node: sabrewulf
sata:
sata0: 'VMs_LVM:10,format=raw'
bios: ovmf
efidisk0:
storage: VMs_LVM_thin
format: raw
efitype: 4m
pre_enrolled_keys: false
- name: Create VM with 1 10GiB SATA disk and an EFI disk, with Secure Boot enabled by default
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
node: sabrewulf
sata:
sata0: 'VMs_LVM:10,format=raw'
bios: ovmf
efidisk0:
storage: VMs_LVM
format: raw
efitype: 4m
pre_enrolled_keys: 1
- name: >
Clone VM with only source VM name.
The VM source is spynal.
The target VM name is zavala
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
clone: spynal
name: zavala
node: sabrewulf
storage: VMs
format: qcow2
timeout: 500
- name: >
Create linked clone VM with only source VM name.
The VM source is spynal.
The target VM name is zavala
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
clone: spynal
name: zavala
node: sabrewulf
storage: VMs
full: false
format: unspecified
timeout: 500
- name: Clone VM with source vmid and target newid and raw format
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
clone: arbitrary_name
vmid: 108
newid: 152
name: zavala
node: sabrewulf
storage: LVM_STO
format: raw
timeout: 300
- name: Create new VM and lock it for snapshot
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
node: sabrewulf
lock: snapshot
- name: Create new VM and set protection to disable the remove VM and remove disk operations
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
node: sabrewulf
protection: true
- name: Create new VM using cloud-init with a username and password
community.proxmox.proxmox_kvm:
node: sabrewulf
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
ide:
ide2: 'local:cloudinit,format=qcow2'
ciuser: mylinuxuser
cipassword: supersecret
searchdomains: 'mydomain.internal'
nameservers: 1.1.1.1
net:
net0: 'virtio,bridge=vmbr1,tag=77'
ipconfig:
ipconfig0: 'ip=192.168.1.1/24,gw=192.168.1.1'
- name: Create new VM using Cloud-Init with an ssh key
community.proxmox.proxmox_kvm:
node: sabrewulf
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
ide:
ide2: 'local:cloudinit,format=qcow2'
sshkeys: |
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPUF/cMCRObddaMmvUDio//yge6gRGXNv3uqMq7ve0x3 ssh-key-1@example.com
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP+v9HERWdWKh1lxceobl98LBX3+alfVK0zJnAxLbMRq ssh-key-2@example.com
searchdomains: 'mydomain.internal'
nameservers:
- '1.1.1.1'
- '8.8.8.8'
net:
net0: 'virtio,bridge=vmbr1,tag=77'
ipconfig:
ipconfig0: 'ip=192.168.1.1/24'
- name: Start VM
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
node: sabrewulf
state: started
- name: Stop VM
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
node: sabrewulf
state: stopped
- name: Stop VM with force
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
node: sabrewulf
state: stopped
force: true
- name: Restart VM
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
node: sabrewulf
state: restarted
- name: Convert VM to template
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
node: sabrewulf
state: template
- name: Convert VM to template (stop VM if running)
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
node: sabrewulf
state: template
force: true
- name: Remove VM
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
node: sabrewulf
state: absent
- name: Get VM current state
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
node: sabrewulf
state: current
- name: Update VM configuration
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
node: sabrewulf
cores: 8
memory: 16384
update: true
- name: Update VM configuration (incl. unsafe options)
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
node: sabrewulf
cores: 8
memory: 16384
net:
net0: virtio,bridge=vmbr1
update: true
update_unsafe: true
- name: Delete QEMU parameters
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
node: sabrewulf
delete: 'args,template,cpulimit'
- name: Revert a pending change
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
node: sabrewulf
revert: 'template,cpulimit'
- name: Migrate VM on second node
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
name: spynal
node: sabrewulf-2
migrate: true
- name: Add hookscript to existing VM
community.proxmox.proxmox_kvm:
api_user: root@pam
api_password: secret
api_host: helldorado
vmid: 999
node: sabrewulf
hookscript: local:snippets/hookscript.pl
update: true
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
msg string | Краткое сообщение. Возвращается: всегда Пример: |
status string | Текущий статус виртуальной машины. Возвращается: success, not clone, not absent, not update Пример: |
vmid integer | Идентификатор VM (vmid). Возвращается: success Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/proxmox/proxmox_kvm_module.html