Spec-Zone.ru › Ansible 2.6

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
    Варианты:
  • 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
bool
    Варианты:
  • нет
  • да
Разрешить принудительное прекращение ВМ.
Может быть использовано только со состояниями stopped, restarted.
format
    Варианты:
  • cloop
  • cow
  • qcow
  • qcow2 ←
  • qed
  • raw
  • vmdk
Формат данных файла обратной записи целевого устройства.
Используется только при клонировании
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
    Варианты:
  • any
  • 2
  • 1024
Включить/выключить память 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
    Варианты:
  • 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 не установлен, следующий доступный идентификатор ВМ будет получен из 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
    Варианты:
  • 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
bool
    Варианты:
  • no
  • yes
Включить/выключить флаг защиты виртуальной машины. Это включит/выключит операции удаления виртуальной машины и удаления диска.
reboot
bool
    Варианты:
  • no
  • yes
Разрешить перезагрузку. Если установлено 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
    Варианты:
  • 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
    Варианты:
  • present ←
  • started
  • absent
  • stopped
  • restarted
  • current
Указывает желаемое состояние экземпляра.
Если current, текущее состояние виртуальной машины будет получено. Вы можете получить его с помощью results.status.
storage
Целевое хранилище для полного клонирования.
tablet
bool
    Варианты:
  • no ←
  • yes
Включает/выключает устройство планшета USB.
target
Целевой узел. Разрешено только в том случае, если исходная виртуальная машина находится на общем хранилище.
Используется только с клонированием.
tdf
bool
    Варианты:
  • no
  • yes
Включает/выключает исправление дрейфа времени.
template
bool
    Варианты:
  • no ←
  • yes
Включает/выключает шаблон.
timeout По умолчанию:
30
Таймаут для операций.
update
bool
    Варианты:
  • no ←
  • yes
Если yes, виртуальная машина будет обновлена новым значением.
По причинам работы API и соображений безопасности обновление следующих параметров отключено
net, virtio, ide, sata, scsi. Например, обновление net обновляет MAC-адрес, а virtio всегда создает новый диск…
validate_certs
bool
    Варианты:
  • 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
    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

Spec-Zone.ru

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