proxmox_kvm - Управление виртуальными машинами Qemu(KVM) в кластере Proxmox VE.
Новая версия с 2.3.
Обзор
- Позволяет создавать/удалять/останавливать виртуальные машины Qemu(KVM) в кластере Proxmox VE.
Требования (к хосту, на котором выполняется модуль)
- proxmoxer
- requests
Параметры
| параметр | обязательный | по умолчанию | значения | комментарии |
|---|---|---|---|---|
| acpi | нет | да |
| Указывает, следует ли включить/отключить ACPI. |
| agent | нет |
| Указывает, следует ли включить/отключить QEMU GuestAgent. | |
| api_host | да | Укажите целевой хост кластера Proxmox VE. | ||
| api_password | нет | Укажите пароль для аутентификации. Можно использовать переменную среды PROXMOX_PASSWORD. | ||
| api_user | да | Укажите пользователя для аутентификации. | ||
| args | нет | -serial unix:/var/run/qemu-server/VMID.serial,server,nowait | Передайте произвольные аргументы в kvm. Этот параметр предназначен только для специалистов! | |
| autostart | нет | нет |
| Указывает, следует ли автоматически перезапускать ВМ после сбоя (в настоящее время игнорируется в PVE API). |
| balloon | нет | Укажите объем оперативной памяти для ВМ в МБ. Использование нуля отключает драйвер 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 | Укажите вес процессора для ВМ. Можно отключить настройку fair-scheduler, установив это значение в 0 | |
| delete | нет | Укажите список параметров, которые требуется удалить. | ||
| description | нет | Укажите описание для ВМ. Используется только в веб-интерфейсе конфигурации. Сохраняется как комментарий в файле конфигурации. | ||
| digest | нет | Укажите, следует ли предотвратить изменения, если текущий файл конфигурации имеет другой дайджест SHA1. Это можно использовать для предотвращения одновременных изменений. | ||
| force | нет |
| Разрешить принудительное останов ВМ. Может использоваться только в состояниях stopped, restarted. | |
| format | нет | qcow2 |
| Формат данных файла резервной копии целевого устройства. Используется только при клонировании |
| freeze | нет |
| Указывает, следует ли замораживать процессор PVE при запуске (используйте команду монитора 'c' для начала выполнения). | |
| full | нет | True |
| Создать полную копию всех дисков. Это всегда делается при клонировании обычной ВМ. Для шаблонов ВМ по умолчанию мы пытаемся создать связанный клон. Используется только при клонировании |
| hostpci | нет | Укажите хэш/словарь для отображения устройств host 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 - проброс устройства Host PCI. Синтаксис HOSTPCIID - bus:dev.func (шестнадцатеричные числа).pcie=boolean по умолчанию=0 Выберите шину PCI-express (требуется модель машины q35).rombar=boolean по умолчанию=1 Указывает, будет ли ПЗУ устройства отображаться в адресном пространстве памяти гостя.x-vga=boolean по умолчанию=0 Включить поддержку устройства vfio-vga./!\ Этот параметр позволяет получить прямой доступ к оборудованию хоста. Поэтому такие машины больше невозможно мигрировать - используйте с особой осторожностью. | ||
| hotplug | нет | Выборочно включить функции hotplug. Это запятой-разделенный список функций hotplug 'network', 'disk', 'cpu', 'memory' and 'usb'.Значение 0 полностью отключает hotplug, а значение 1 является псевдонимом для значения по умолчанию 'network,disk,usb'. | ||
| hugepages | нет |
| Включить/отключить память 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 | нет | да |
| Включить/отключить аппаратную виртуализацию KVM. |
| localtime | нет |
| Устанавливает реальные часы на местное время. Включено по умолчанию, если 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 означает отсутствие ограничения. | ||
| name | нет | Указывает имя ВМ. Используется только в веб-интерфейсе конфигурации. Требуется только для state=present. | ||
| net | нет | Хэш/словарь сетевых интерфейсов для ВМ. net='{"key":"value", "key":"value"}'.Допустимые ключи - net[n] где 0 ≤ n ≤ N.Допустимые значения - "model="XX:XX:XX:XX:XX:XX",brigde="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 'пользователь' (NATed), которое предоставляет службы DHCP и DNS. | ||
| newid | нет | VMID для клона. Используется только при клонировании. Если newid не задан, следующий доступный идентификатор ВМ будет получен из ProxmoxAPI. | ||
| node | нет | Узел 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. | ||
| onboot | нет | да |
| Указывает, будет ли ВМ запущена при загрузке системы. |
| ostype | нет | l26 |
| Указывает гостевую операционную систему. Используется для включения специальной оптимизации/функций для конкретных операционных систем. l26 - ядро Linux 2.6/3.X. |
| parallel | нет | Хэш/словарь для отображения устройств host parallel. parallel='{"key":"value", "key":"value"}'.Допустимые ключи - (parallel[n]) где 0 ≤ n ≤ 2. Допустимые значения - "/dev/parport\d+|/dev/usb/lp\d+". | ||
| pool | нет | Добавить новую ВМ в указанный пул. | ||
| protection | нет |
| Включить/отключить флаг защиты ВМ. Это включит/отключит операции удаления ВМ и удаления дисков. | |
| reboot | нет |
| Разрешить перезагрузку. Если установлено значение «да», ВМ завершит работу при перезагрузке. | |
| revert | нет | Отменить ожидающие изменения. |
| 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. | |
| serial | нет | Хэш/словарь последовательного устройства для создания внутри ВМ. '{"key":"value", "key":"value"}'. Допустимые ключи - serial[n](str; требуется), где 0 ≤ n ≤ 3. Допустимые значения - (/dev/.+|socket./!\ Если вы пропускаете устройство последовательного порта хоста, то такие машины больше нельзя мигрировать — используйте с особой осторожностью. | ||
| shares | нет | Возвращает количество долей памяти для автоматического расширения. (0 — 50000). Чем больше число, тем больше памяти получает эта ВМ. Число относительно весов всех других работающих ВМ. Использование 0 отключает автоматическое расширение, это означает отсутствие ограничения. | ||
| skiplock | нет | Игнорировать блокировки. Только root может использовать этот параметр. | ||
| smbios | нет | Указывает поля SMBIOS типа 1. | ||
| snapname | нет | Имя моментального снимка. Используется только с клонированием. | ||
| sockets | нет | 1 | Устанавливает количество сокетов процессора. (1 — N). | |
| startdate | нет | Устанавливает начальную дату реальных часов. Допустимые форматы даты: 'now', '2016-09-25T16:01:21', или '2016-09-25'. | ||
| startup | нет | Поведение при запуске и выключении. [[order=]\d+] [,up=\d+] [,down=\d+].Порядок — положительное число, определяющее общий порядок запуска. Выключение выполняется в обратном порядке. | ||
| state | нет | наличие |
| Указывает желаемое состояние экземпляра. Если current, текущее состояние ВМ будет получено. Вы можете получить доступ к нему с помощью results.status. |
| storage | нет | Целевое хранилище для полного клонирования. | ||
| tablet | нет | нет |
| Включает/выключает устройство планшета USB. |
| target | нет | Целевой узел. Допускается только если исходная ВМ находится на совместном хранилище. Используется только с клонированием. | ||
| tdf | нет |
| Включает/выключает исправление сдвига времени. | |
| template | нет | нет |
| Включает/выключает шаблон. |
| timeout | нет | 30 | Таймаут для операций. | |
| update | нет | нет |
| Если yes, ВМ будет обновлена новым значением.По причинам работы API и соображениям безопасности я отключил обновление следующих параметров net, virtio, ide, sata, scsi. Например, обновление net обновляет MAC-адрес, а virtio всегда создает новый диск... |
| validate_certs | нет | нет |
| Если no, сертификаты SSL не будут проверены. Это следует использовать только на сайтах, контролируемых лично, которые используют самозаверенные сертификаты. |
| vcpus | нет | Устанавливает количество горячих подключаемых виртуальных процессоров. | ||
| vga | нет | std |
| Выберите тип 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
cpu : 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 и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/proxmox_kvm_module.html