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 | Значение по умолчанию: 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 |
Нет | Разрешить принудительное прекращение работы виртуального компьютера. Может использоваться только с состояниями stopped, restarted. |
| format |
| Формат данных файла базового диска целевого диска. Используется только при клонировании |
| freeze |
Нет | Указывает, должен ли Proxmox замораживать процессор при запуске (используйте команду монитора 'c' для запуска выполнения). |
| full |
| Создать полную копию всех дисков. Это всегда делается при клонировании обычного виртуального компьютера. Для шаблонов виртуальных компьютеров мы пытаемся создать связанный клон по умолчанию. Используется только при клонировании |
| 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 (шестнадцатеричные числа).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 |
Нет | Включить/выключить память hugepages. |
| ide | Значение по умолчанию: Нет | Хеш/словарь томов, используемых как жесткий диск IDE или CD-ROM. 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. тип => (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 «пользователь» (NAT), которое предоставляет DHCP и DNS-сервисы. |
| newid | Значение по умолчанию: Нет | VMID для клона. Используется только при клонировании. Если newid не установлен, следующий доступный идентификатор VM будет получен из ProxmoxAPI. |
| node | Значение по умолчанию: Нет | Узел Proxmox VE, где будет создан новый виртуальный компьютер. Необходим только для state=present. Для других состояний он будет автоматически обнаружен. |
| numa | Значение по умолчанию: None | Хэш/словарь топологии 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 - ядро Linux 2.6/3.X. |
| parallel | Значение по умолчанию: None | Хэш/словарь отображения параллельных устройств хоста. parallel='{"key":"value", "key":"value"}'.Разрешенные ключи - (parallel[n]), где 0 ≤ n ≤ 2. Разрешенные значения - "/dev/parport\d+|/dev/usb/lp\d+". |
| pool | Значение по умолчанию: None | Добавить новую виртуальную машину в указанный пул. |
| protection |
None | Включить/отключить флаг защиты виртуальной машины. Это включит/отключит операции удаления виртуальной машины и удаления диска. |
| reboot |
None | Разрешить перезагрузку. Если установлено в yes, виртуальная машина завершит работу при перезагрузке. |
| revert | Значение по умолчанию: None | Отменить ожидаемое изменение. |
| sata | Значение по умолчанию: None | Хэш/словарь томов, используемых в качестве SATA жёсткого диска или CD-ROM. sata='{"key":"value", "key":"value"}'.Разрешенные ключи - sata[n] где 0 ≤ n ≤ 5.Разрешенные значения - "storage:size,format=value".storage - идентификатор хранилища для создания диска.size - размер диска в ГБ.format - формат данных файла поддержки диска. qcow2|raw|subvol. |
| scsi | Значение по умолчанию: None | Хэш/словарь томов, используемых в качестве SCSI жёсткого диска или CD-ROM. scsi='{"key":"value", "key":"value"}'.Разрешенные ключи - sata[n] где 0 ≤ n ≤ 13.Разрешенные значения - "storage:size,format=value".storage - идентификатор хранилища для создания диска.size - размер диска в ГБ.format - формат данных файла поддержки диска. qcow2|raw|subvol. |
| scsihw |
None | Указывает модель контроллера SCSI. |
| serial | Значение по умолчанию: None | Хэш/словарь последовательного устройства для создания внутри виртуальной машины. '{"key":"value", "key":"value"}'.Разрешенные ключи - serial[n](str; required) где 0 ≤ n ≤ 3. Разрешенные значения - (/dev/.+|socket)./!\ Если вы используете последовательное устройство хоста, то больше невозможно мигрировать такие машины - используйте с осторожностью. |
| shares | Значение по умолчанию: None | Количество долей памяти для автоматического регулирования (0 - 50000). Чем больше число, тем больше памяти получает эта виртуальная машина. Число относительно весов всех других работающих виртуальных машин. Использование 0 отключает автоматическое регулирование, что означает отсутствие ограничения. |
| skiplock | Значение по умолчанию: None | Игнорировать блокировки. Только root разрешено использовать этот параметр. |
| smbios | Значение по умолчанию: None | Указывает поля SMBIOS типа 1. |
| snapname | Значение по умолчанию: None | Имя снимка. Используется только с клонированием. |
| sockets | Значение по умолчанию: 1 | Устанавливает количество сокетов процессора. (1 - N). |
| startdate | Значение по умолчанию: None | Устанавливает начальную дату реальных часов. Допустимые форматы даты - 'now' или '2016-09-25T16:01:21' или '2016-09-25'. |
| startup | Значение по умолчанию: None | Поведение при запуске и выключении. [[order=]\d+] [,up=\d+] [,down=\d+].Порядок - неотрицательное число, определяющее общий порядок запуска. Выключение выполняется в обратном порядке. |
| state |
| Указывает желаемое состояние экземпляра. Если current, текущее состояние виртуальной машины будет получено. Вы можете получить доступ к нему с помощью results.status
|
| storage | Значение по умолчанию: None | Целевое хранилище для полного клонирования. |
| tablet |
| Включает/отключает устройство USB планшета. |
| target | Значение по умолчанию: None | Целевой узел. Разрешено только если исходная виртуальная машина находится на общем хранилище. Используется только с клонированием |
| tdf |
None | Включает/отключает исправление смещения времени. |
| template |
| Включает/отключает шаблон. |
| timeout | Значение по умолчанию: 30 | Таймаут для операций. |
| update |
| Если yes, виртуальная машина будет обновлена новыми значениями.Из-за операций API и соображений безопасности я отключил обновление следующих параметров net, virtio, ide, sata, scsi. Например, обновление net обновит MAC-адрес, а virtio всегда создаст новый диск... |
| validate_certs |
| Если no, сертификаты SSL не будут проверены. Это следует использовать только на контролируемых вами сайтах с самозаверяющими сертификатами. |
| vcpus | Значение по умолчанию: None | Устанавливает количество подключенных в реальном времени vCPU. |
| vga |
| Выбор типа VGA. Если вы хотите использовать режимы высокого разрешения (>= 1280x1024x16), то вы должны использовать параметр 'std' или 'vmware'. |
| virtio | Значение по умолчанию: None | Хэш/словарь томов, используемых как VIRTIO жёсткий диск. virtio='{"key":"value", "key":"value"}'.Разрешенные ключи - virto[n] где 0 ≤ n ≤ 15.Разрешенные значения - "storage:size,format=value".storage - идентификатор хранилища для создания диска.size - размер диска в ГБ.format - формат данных файла поддержки диска. qcow2|raw|subvol. |
| vmid | Значение по умолчанию: None | Указывает идентификатор виртуальной машины. Вместо этого используйте параметр name. Если vmid не задан, следующий доступный идентификатор виртуальной машины будет получен из ProxmoxAPI. |
| watchdog | Значение по умолчанию: None | Создаёт виртуальное аппаратное устройство 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 dict | успешно | Список созданных или используемых устройств. Пример: { "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 dict | успешно | Список адресов MAC, созданных и подключённых к сети [n]. Полезно при использовании систем обеспечения, таких как Foreman, через PXE. Пример: { "net0": "3E:6E:97:D2:31:9F", "net1": "B6:A1:FC:EF:78:A4" } |
| status dict | успешно | Текущее состояние виртуальной машины. Возвращается только при state=current.
Пример: { "changed": false, "msg": "Виртуальная машина kropta с vmid = 110 запущена", "status": "запущена" } |
| vmid int | успешно | vmid виртуальной машины. Пример: 115 |
Состояние
Этот модуль помечен как предварительный просмотр, что означает, что его интерфейс не гарантируется обратной совместимостью.
Автор
- 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.5/modules/proxmox_kvm_module.html