proxmox_kvm – Управление виртуальными машинами Qemu(KVM) в кластере Proxmox VE.
Новая версия с 2.3.
Обзор
- Позволяет создавать/удалять/останавливать виртуальные машины Qemu(KVM) в кластере Proxmox VE.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- proxmoxer
- requests
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| acpi boolean |
| Указывает, следует ли включить/выключить ACPI. |
| agent boolean |
| Указывает, следует ли включить/выключить 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 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 (шестнадцатеричные числа).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 - |
| Включить/выключить огромные страницы памяти. |
| 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 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 означает отсутствие ограничения. |
| 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 ID будет получен из 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 boolean |
| Указывает, будет ли ВМ запущена во время загрузки системы. |
| 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 boolean |
| Включить/выключить флаг защиты ВМ. Это включит/выключит операции удаления ВМ и дисков. |
| reboot boolean |
| Разрешить перезагрузку. Если установлено 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 boolean |
| Включает/отключает устройство планшета USB. |
| target - | Целевой узел. Допускается только если исходная ВМ находится на общем хранилище. Используется только при клонировании. | |
| tdf boolean |
| Включает/выключает исправление смещения времени. |
| template boolean |
| Включает/выключает шаблон. |
| timeout - | По умолчанию: 30 | Таймаут для операций. |
| update boolean |
| Если yes, ВМ будет обновлена новым значением.Из-за операций API и соображений безопасности я отключил обновление следующих параметров net, virtio, ide, sata, scsi. Например, обновление net обновляет MAC-адрес и virtio всегда создаёт новый диск... |
| validate_certs boolean |
| Если no, сертификаты SSL не будут проверены. Это следует использовать только на сайтах, контролируемых лично, с использованием самозаверенных сертификатов. |
| vcpus - | Устанавливает количество подключаемых vcpus. | |
| 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": "VM kropta с vmid = 110 запущена", "status": "запущена" } |
| vmid целое число | успех | Идентификатор ВМ vmid. Пример: 115 |
Состояние
- Этот модуль не гарантирует обратной совместимости. [превью]
- Этот модуль поддерживается сообществом 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.7/modules/proxmox_kvm_module.html