proxmox_kvm — Управление виртуальными машинами Qemu(KVM) в кластере Proxmox VE.
Новая версия с 2.3.
Описание
- Позволяет создавать/удалять/останавливать виртуальные машины Qemu(KVM) в кластере Proxmox VE.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- proxmoxer
- requests
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| acpi bool |
| Указывает, должен ли быть включен/выключен ACPI. |
| agent bool |
| Указывает, должен ли быть включен/выключен QEMU Guest Agent. |
| api_host обязательно | Укажите целевой хост кластера Proxmox VE. | |
| api_password | Укажите пароль для аутентификации. Вы можете использовать переменную среды PROXMOX_PASSWORD. | |
| api_user обязательно | Укажите пользователя для аутентификации. | |
| args | Значение по умолчанию: "-serial unix:/var/run/qemu-server/VMID.serial,server,nowait" | Передайте произвольные аргументы в kvm. Этот параметр предназначен только для специалистов! |
| autostart bool |
| Укажите, должен ли ВМ автоматически перезапускаться после сбоя (в настоящее время игнорируется в PVE API). |
| balloon | Значение по умолчанию: 0 | Укажите объем оперативной памяти для ВМ в МБ. Использование нуля отключает драйвер баллона. |
| 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 bool |
| Разрешить принудительное прекращение ВМ. Может быть использовано только со состояниями stopped, restarted. |
| format |
| Формат данных файла обратной записи целевого устройства. Используется только при клонировании |
| freeze bool |
| Указывает, должен ли PVE заморозить ЦП при запуске (используйте команду монитора 'c' для запуска выполнения). |
| full bool |
| Создать полную копию всех дисков. Это всегда выполняется при клонировании обычной ВМ. Для шаблонов ВМ по умолчанию мы пытаемся создать связанный клон. Используется только при клонировании |
| 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 Укажите, будет ли ROM устройства отображаться в адресном пространстве памяти гостевой системы.x-vga=boolean по умолчанию=0 Включить поддержку устройства vfio-vga./!\ Этот параметр обеспечивает прямой доступ к оборудованию хоста. Поэтому такие машины больше нельзя мигрировать - используйте с осторожностью. | |
| hotplug | Выборочно включите функции 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 bool |
| Включить/выключить виртуализацию аппаратного обеспечения KVM. |
| localtime bool |
| Устанавливает реальное время в местное время. Включено по умолчанию, если 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 'пользователь' (NAT), которое предоставляет услуги 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 bool |
| Указывает, будет ли ВМ запускаться во время загрузки системы. |
| ostype |
| Указывает гостевую операционную систему. Используется для включения специальной оптимизации/функций для определенных операционных систем. l26 — ядро Linux 2.6/3.X. |
| parallel | Хеш/словарь карт параллельных устройств хоста. parallel='{"key":"value", "key":"value"}'. Допустимые ключи — (parallel[n]), где 0 ≤ n ≤ 2. Допустимые значения — "/dev/parport\d+|/dev/usb/lp\d+". | |
| pool | Добавить новую виртуальную машину в указанный пул. | |
| protection bool |
| Включить/выключить флаг защиты виртуальной машины. Это включит/выключит операции удаления виртуальной машины и удаления диска. |
| reboot bool |
| Разрешить перезагрузку. Если установлено yes, виртуальная машина выйдет при перезагрузке. |
| 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 bool |
| Включает/выключает устройство планшета USB. |
| target | Целевой узел. Разрешено только в том случае, если исходная виртуальная машина находится на общем хранилище. Используется только с клонированием. | |
| tdf bool |
| Включает/выключает исправление дрейфа времени. |
| template bool |
| Включает/выключает шаблон. |
| timeout | По умолчанию: 30 | Таймаут для операций. |
| update bool |
| Если yes, виртуальная машина будет обновлена новым значением.По причинам работы API и соображений безопасности обновление следующих параметров отключено net, virtio, ide, sata, scsi. Например, обновление net обновляет MAC-адрес, а virtio всегда создает новый диск… |
| validate_certs bool |
| Если 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
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-адресов и подключенных net[n]. Полезно при использовании систем провизионирования, таких как Foreman через PXE. Пример: { "net0": "3E:6E:97:D2:31:9F", "net1": "B6:A1:FC:EF:78:A4" } |
| status dict | успех | Текущее состояние виртуальной машины. Возвращается только когда state=current.
Пример: { "changed": false, "msg": "VM kropta с vmid = 110 работает", "status": "running" } |
| vmid int | успех | vmid виртуальной машины. Пример: 115 |
Статус
Этот модуль помечен как превью, что означает, что его интерфейс не гарантированно будет обратной совместимостью.
Техническое обслуживание
Этот модуль помечен как сообщество, что означает, что его поддерживает сообщество Ansible. См. Техническое обслуживание и поддержка модулей для получения дополнительной информации.
Список других модулей, которые также поддерживаются сообществом Ansible, см. здесь.
Автор
- 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.6/modules/proxmox_kvm_module.html