Spec-Zone.ru › Ansible 2.7

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

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

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

Обзор

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

Требования

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

  • proxmoxer
  • requests

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
acpi
boolean
    Варианты:
  • no
  • да ←
Указывает, следует ли включить/выключить ACPI.
agent
boolean
    Варианты:
  • no
  • yes
Указывает, следует ли включить/выключить 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
    Варианты:
  • нет ←
  • 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 (шестнадцатеричные числа).
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
-
    Варианты:
  • any
  • 2
  • 1024
Включить/выключить огромные страницы памяти.
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
    Варианты:
  • 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 означает отсутствие ограничения.
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
    Choices:
  • no
  • да ←
Указывает, будет ли ВМ запущена во время загрузки системы.
ostype
-
    Choices:
  • other
  • wxp
  • w2k
  • w2k3
  • w2k8
  • wvista
  • win7
  • win8
  • l24
  • l26 ←
  • solaris
Указывает гостевую операционную систему. Используется для активации специальных оптимизаций/функций для определённых операционных систем.
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
    Choices:
  • no
  • да
Включить/выключить флаг защиты ВМ. Это включит/выключит операции удаления ВМ и дисков.
reboot
boolean
    Choices:
  • no
  • да
Разрешить перезагрузку. Если установлено 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
-
    Choices:
  • 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
-
    Choices:
  • текущее ←
  • запущен
  • отсутствует
  • остановлен
  • перезапущен
  • текущее
Указывает желаемое состояние экземпляра.
Если current, текущее состояние ВМ будет получено. Вы можете получить к нему доступ с помощью results.status
storage
-
Целевое хранилище для полного клонирования.
tablet
boolean
    Choices:
  • нет ←
  • да
Включает/отключает устройство планшета USB.
target
-
Целевой узел. Допускается только если исходная ВМ находится на общем хранилище.
Используется только при клонировании.
tdf
boolean
    Choices:
  • no
  • да
Включает/выключает исправление смещения времени.
template
boolean
    Choices:
  • нет ←
  • да
Включает/выключает шаблон.
timeout
-
По умолчанию:
30
Таймаут для операций.
update
boolean
    Choices:
  • нет ←
  • да
Если yes, ВМ будет обновлена новым значением.
Из-за операций API и соображений безопасности я отключил обновление следующих параметров
net, virtio, ide, sata, scsi. Например, обновление net обновляет MAC-адрес и virtio всегда создаёт новый диск...
validate_certs
boolean
    Выборы:
  • нет ←
  • да
Если no, сертификаты SSL не будут проверены. Это следует использовать только на сайтах, контролируемых лично, с использованием самозаверенных сертификатов.
vcpus
-
Устанавливает количество подключаемых vcpus.
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": "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

Spec-Zone.ru

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