Spec-Zone.ru › Ansible 2.8

proxmox_kvm – Управление виртуальными машинами Qemu(KVM) в кластере Proxmox VE

Новая в версии 2.3.

  • Описание
  • Требования
  • Параметры
  • Примеры
  • Возвращаемые значения
  • Статус

Описание

  • Позволяет создавать/удалять/останавливать виртуальные машины Qemu(KVM) в кластере Proxmox VE.

Требования

Ниже перечислены требования к хосту, на котором выполняется этот модуль.

  • proxmoxer
  • requests

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
acpi
boolean
    Варианты:
  • no
  • да ←
Указывает, должен ли быть включён/выключен ACPI.
agent
boolean
    Варианты:
  • no
  • yes
Указывает, должен ли быть включён/выключен агент QEMU Guest.
api_host
- / обязательно
Указывает целевой хост кластера Proxmox VE.
api_password
-
Указывает пароль для аутентификации.
Можно использовать переменную среды PROXMOX_PASSWORD.
api_user
- / обязательно
Указывает пользователя для аутентификации.
args
-
По умолчанию:
"-serial unix:/var/run/qemu-server/VMID.serial,server,nowait"
Передает произвольные аргументы в kvm.
Этот параметр предназначен только для экспертов!
autostart
boolean
    Варианты:
  • нет ←
  • yes
Указывает, должен ли виртуальный компьютер автоматически перезапускаться после сбоя (в настоящее время игнорируется в PVE API).
balloon
-
По умолчанию:
0
Указывает объём ОЗУ для виртуального компьютера в МБ.
Использование нуля отключает драйвер balloon.
bios
-
    Варианты:
  • seabios
  • ovmf
Указывает реализацию 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
    Варианты:
  • no
  • yes
Разрешить принудительную остановку виртуального компьютера.
Можно использовать только с состояниями stopped, restarted.
format
-
    Варианты:
  • cloop
  • cow
  • qcow
  • qcow2 ←
  • qed
  • raw
  • vmdk
Формат данных резервного файла целевого диска.
Используется только при клонировании.
freeze
boolean
    Варианты:
  • no
  • yes
Указывает, должен ли PVE заморозить процессор при запуске (используйте команду монитора 'c' для запуска выполнения).
full
boolean
    Варианты:
  • no
  • да ←
Создать полную копию всех дисков. Это всегда делается при клонировании обычного виртуального компьютера.
Для шаблонов виртуальных машин по умолчанию мы пытаемся создать связанный клон.
Используется только при клонировании.
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\n(шестнадцатеричные числа).
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
-
    Варианты:
  • any
  • 2
  • 1024
Включить/выключить огромные страницы памяти.
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
boolean
    Варианты:
  • no
  • да ←
Включить/выключить виртуализацию аппаратного обеспечения KVM.
localtime
boolean
    Варианты:
  • no
  • yes
Устанавливает реальные часы на местное время.
Включено по умолчанию, если ostype указывает на операционную систему Microsoft.
lock
-
    Варианты:
  • migrate
  • backup
  • snapshot
  • rollback
Заблокировать/разблокировать виртуальный компьютер.
machine
-
Указывает тип машины Qemu.
type => (pc|pc(-i440fx?-\d+\.\d+(\.pxe)?|q35|pc-q35-\d+\.\d+(\.pxe)?))
memory
-
По умолчанию:
512
Размер памяти в МБ для экземпляра.
migrate_downtime
-
Устанавливает максимальное допустимое время простоя (в секундах) для миграций.
migrate_speed
-
Устанавливает максимальную скорость (в МБ/с) для миграций.
Значение 0 означает отсутствие ограничения.
имя
-
Указывает имя ВМ. Используется только на веб-интерфейсе конфигурации.
Требуется только для state=present.
сеть
-
Хэш/словарь сетевых интерфейсов для ВМ. net='{"key":"value", "key":"value"}'.
Разрешенные ключи — net[n], где 0 ≤ n ≤ N.
Разрешенные значения — "model="XX:XX:XX:XX:XX:XX",bridge="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 'user' (NAT), предоставляющее DHCP и DNS-сервисы.
новый_идентификатор
-
VMID для клона. Используется только с клоном.
Если newid не задан, следующий доступный идентификатор ВМ будет получен из ProxmoxAPI.
узел
-
Узел 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.
при_загрузке
boolean
    Варианты:
  • нет
  • да ←
Указывает, будет ли ВМ запущена при загрузке системы.
тип_гостя
-
    Варианты:
  • другой
  • wxp
  • w2k
  • w2k3
  • w2k8
  • wvista
  • win7
  • win8
  • l24
  • l26 ←
  • solaris
Указывает гостевую операционную систему. Используется для включения специальной оптимизации/функций для определённых операционных систем.
l26 — ядро Linux 2.6/3.X.
параллельно
-
Хэш/словарь карты устройств параллельных хостов. parallel='{"key":"value", "key":"value"}'.
Разрешенные ключи — (parallel[n]), где 0 ≤ n ≤ 2.
Разрешенные значения — "/dev/parport\d+|/dev/usb/lp\d+".
пул
-
Добавить новую ВМ в указанный пул.
защита
boolean
    Варианты:
  • нет
  • да
Включить/выключить флаг защиты ВМ. Это включит/выключит операции удаления ВМ и удаления дисков.
перезагрузка
boolean
    Варианты:
  • нет
  • да
Разрешить перезагрузку. Если установлено yes, ВМ завершит работу при перезагрузке.
восстановить
-
Восстановить ожидаемое изменение.
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
-
    Варианты:
  • lsi
  • lsi53c810
  • virtio-scsi-pci
  • virtio-scsi-single
  • megasas
  • pvscsi
Указывает модель контроллера SCSI.
последовательный
-
Хэш/словарь последовательного устройства для создания внутри ВМ. '{"key":"value", "key":"value"}'.
Разрешенные ключи — serial[n](str; требуется), где 0 ≤ n ≤ 3.
Разрешенные значения — (/dev/.+|socket).
/!\ Если вы используете последовательное устройство хоста, миграция таких машин больше невозможна — используйте с особой осторожностью.
разделяемые
-
Количество долей памяти для автоматического изменения размера. (0 - 50000).
Чем больше число, тем больше памяти получает эта ВМ.
Число относительно весов всех других работающих ВМ.
Использование 0 отключает автоматическое изменение размера, то есть ограничений нет.
пропустить_блокировку
-
Игнорировать блокировки
Только root разрешено использовать эту опцию.
smbios
-
Указывает поля типа 1 SMBIOS.
имя_снимка
-
Имя снимка. Используется только с клоном.
сокеты
-
По умолчанию:
1
Устанавливает количество сокетов ЦП. (1 - N).
начальная_дата
-
Устанавливает начальную дату реальных часов.
Допустимые форматы дат — 'now' или '2016-09-25T16:01:21' или '2016-09-25'.
запуск
-
Поведение при запуске и выключении. [[order=]\d+] [,up=\d+] [,down=\d+].
Порядок — положительное число, определяющее общий порядок запуска.
Выключение выполняется в обратном порядке.
состояние
-
    Варианты:
  • наличие ←
  • запущен
  • отсутствует
  • остановлен
  • перезапущен
  • текущий
Указывает желаемое состояние экземпляра.
Если current, текущее состояние ВМ будет получено. Вы можете получить его с помощью results.status
хранилище
-
Целевое хранилище для полного клона.
планшет
boolean
    Варианты:
  • нет ←
  • да
Включает/отключает устройство планшета USB.
цель
-
Целевой узел. Разрешено только если исходная ВМ находится на общем хранилище.
Используется только с клоном.
tdf
boolean
    Варианты:
  • нет
  • да
Включает/выключает исправление смещения времени.
шаблон
boolean
    Варианты:
  • нет ←
  • да
Включает/выключает шаблон.
таймаут
-
По умолчанию:
30
Таймаут для операций.
обновить
boolean
    Варианты:
  • нет ←
  • да
Если yes, ВМ будет обновлена новым значением.
Из-за операций API и соображений безопасности я отключил обновление следующих параметров
net, virtio, ide, sata, scsi. Например, обновление net обновляет MAC-адрес и virtio всегда создаёт новый диск...
validate_certs
boolean
    Варианты:
  • no ←
  • yes
Если no, сертификаты SSL не будут проверены. Это следует использовать только на сайтах, контролируемых лично, использующих самозаверенные сертификаты.
vcpus
-
Устанавливает количество горячих vcpu.
vga
-
    Варианты:
  • std ←
  • cirrus
  • vmware
  • qxl
  • serial0
  • serial1
  • serial2
  • serial3
  • qxl2
  • qxl3
  • qxl4
Выберите тип 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": "Виртуальная машина kropta с vmid = 110 запущена", "status": "запущена" }
vmid
целое число
успех
Идентификатор виртуальной машины.

Пример:
115


Состояние

  • Данный модуль не гарантирует обратную совместимость. [предварительная версия]
  • Данный модуль поддерживается сообществом Ansible. [community]

Авторы

  • 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.8/modules/proxmox_kvm_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API