Spec-Zone.ru › Ansible 2.4

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
нет
  • 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
Укажите вес процессора для ВМ.
Можно отключить настройку fair-scheduler, установив это значение в 0
delete
нет
Укажите список параметров, которые требуется удалить.
description
нет
Укажите описание для ВМ. Используется только в веб-интерфейсе конфигурации.
Сохраняется как комментарий в файле конфигурации.
digest
нет
Укажите, следует ли предотвратить изменения, если текущий файл конфигурации имеет другой дайджест SHA1.
Это можно использовать для предотвращения одновременных изменений.
force
нет
  • да
  • нет
Разрешить принудительное останов ВМ.
Может использоваться только в состояниях stopped, restarted.
format
нет qcow2
  • cloop
  • cow
  • qcow
  • qcow2
  • qed
  • raw
  • vmdk
Формат данных файла резервной копии целевого устройства.
Используется только при клонировании
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
нет
  • any
  • 2
  • 1024
Включить/отключить память 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
нет
  • 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 означает отсутствие ограничения.
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
  • other
  • wxp
  • w2k
  • w2k3
  • w2k8
  • wvista
  • win7
  • win8
  • l24
  • l26
  • solaris
Указывает гостевую операционную систему. Используется для включения специальной оптимизации/функций для конкретных операционных систем.
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
нет
  • lsi
  • lsi53c810
  • virtio-scsi-pci
  • virtio-scsi-single
  • megasas
  • pvscsi
Указывает модель контроллера 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
  • 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
    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

Spec-Zone.ru

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