Spec-Zone.ru › Ansible 2.5

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 Значение по умолчанию:
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
    Варианты:
  • да
  • нет
Значение по умолчанию:
Нет
Разрешить принудительное прекращение работы виртуального компьютера.
Может использоваться только с состояниями stopped, restarted.
format
    Варианты:
  • cloop
  • cow
  • qcow
  • qcow2 ←
  • qed
  • raw
  • vmdk
Формат данных файла базового диска целевого диска.
Используется только при клонировании
freeze
    Варианты:
  • да
  • нет
Значение по умолчанию:
Нет
Указывает, должен ли Proxmox замораживать процессор при запуске (используйте команду монитора 'c' для запуска выполнения).
full
    Варианты:
  • да ←
  • нет
Создать полную копию всех дисков. Это всегда делается при клонировании обычного виртуального компьютера.
Для шаблонов виртуальных компьютеров мы пытаемся создать связанный клон по умолчанию.
Используется только при клонировании
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 Указывает, будет ли ПЗУ устройства отображаться в отображении памяти гостя.
x-vga=boolean по умолчанию=0 Включить поддержку устройства vfio-vga.
/!\ Этот параметр позволяет напрямую получить доступ к оборудованию хоста. Таким образом, миграция таких машин больше невозможна — используйте с особой осторожностью.
hotplug Значение по умолчанию:
Нет
Выборочно включает функции hotplug.
Это список горячих подключаемых функций, разделенный запятыми 'network', 'disk', 'cpu', 'memory' and 'usb'.
Значение 0 полностью отключает hotplug, а значение 1 является псевдонимом для значения по умолчанию 'network,disk,usb'.
hugepages
    Варианты:
  • любой
  • 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
    Варианты:
  • да ←
  • нет
Включить/выключить виртуализацию аппаратного обеспечения KVM.
localtime
    Варианты:
  • да
  • нет
Значение по умолчанию:
Нет
Устанавливает реальные часы на местное время.
Включено по умолчанию, если ostype указывает на операционную систему Microsoft.
lock
    Варианты:
  • мигрировать
  • резервная копия
  • снимок
  • откат
Значение по умолчанию:
Нет
Заблокировать/разблокировать виртуальный компьютер.
machine Значение по умолчанию:
Нет
Указывает тип машины Qemu.
тип => (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 будет получен из ProxmoxAPI.
node Значение по умолчанию:
Нет
Узел Proxmox VE, где будет создан новый виртуальный компьютер.
Необходим только для state=present.
Для других состояний он будет автоматически обнаружен.
numa Значение по умолчанию:
None
Хэш/словарь топологии 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
    Варианты:
  • yes ←
  • no
Указывает, будет ли виртуальная машина запущена во время загрузки системы.
ostype
    Варианты:
  • other
  • wxp
  • w2k
  • w2k3
  • w2k8
  • wvista
  • win7
  • win8
  • l24
  • l26 ←
  • solaris
Указывает гостевую операционную систему. Это используется для включения специальной оптимизации/функций для определённых операционных систем.
l26 - ядро Linux 2.6/3.X.
parallel Значение по умолчанию:
None
Хэш/словарь отображения параллельных устройств хоста. parallel='{"key":"value", "key":"value"}'.
Разрешенные ключи - (parallel[n]), где 0 ≤ n ≤ 2.
Разрешенные значения - "/dev/parport\d+|/dev/usb/lp\d+".
pool Значение по умолчанию:
None
Добавить новую виртуальную машину в указанный пул.
protection
    Варианты:
  • yes
  • no
Значение по умолчанию:
None
Включить/отключить флаг защиты виртуальной машины. Это включит/отключит операции удаления виртуальной машины и удаления диска.
reboot
    Варианты:
  • yes
  • no
Значение по умолчанию:
None
Разрешить перезагрузку. Если установлено в yes, виртуальная машина завершит работу при перезагрузке.
revert Значение по умолчанию:
None
Отменить ожидаемое изменение.
sata Значение по умолчанию:
None
Хэш/словарь томов, используемых в качестве SATA жёсткого диска или CD-ROM. sata='{"key":"value", "key":"value"}'.
Разрешенные ключи - sata[n] где 0 ≤ n ≤ 5.
Разрешенные значения - "storage:size,format=value".
storage - идентификатор хранилища для создания диска.
size - размер диска в ГБ.
format - формат данных файла поддержки диска. qcow2|raw|subvol.
scsi Значение по умолчанию:
None
Хэш/словарь томов, используемых в качестве 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
Значение по умолчанию:
None
Указывает модель контроллера SCSI.
serial Значение по умолчанию:
None
Хэш/словарь последовательного устройства для создания внутри виртуальной машины. '{"key":"value", "key":"value"}'.
Разрешенные ключи - serial[n](str; required) где 0 ≤ n ≤ 3.
Разрешенные значения - (/dev/.+|socket).
/!\ Если вы используете последовательное устройство хоста, то больше невозможно мигрировать такие машины - используйте с осторожностью.
shares Значение по умолчанию:
None
Количество долей памяти для автоматического регулирования (0 - 50000).
Чем больше число, тем больше памяти получает эта виртуальная машина.
Число относительно весов всех других работающих виртуальных машин.
Использование 0 отключает автоматическое регулирование, что означает отсутствие ограничения.
skiplock Значение по умолчанию:
None
Игнорировать блокировки.
Только root разрешено использовать этот параметр.
smbios Значение по умолчанию:
None
Указывает поля SMBIOS типа 1.
snapname Значение по умолчанию:
None
Имя снимка. Используется только с клонированием.
sockets Значение по умолчанию:
1
Устанавливает количество сокетов процессора. (1 - N).
startdate Значение по умолчанию:
None
Устанавливает начальную дату реальных часов.
Допустимые форматы даты - 'now' или '2016-09-25T16:01:21' или '2016-09-25'.
startup Значение по умолчанию:
None
Поведение при запуске и выключении. [[order=]\d+] [,up=\d+] [,down=\d+].
Порядок - неотрицательное число, определяющее общий порядок запуска.
Выключение выполняется в обратном порядке.
state
    Варианты:
  • present ←
  • started
  • absent
  • stopped
  • restarted
  • current
Указывает желаемое состояние экземпляра.
Если current, текущее состояние виртуальной машины будет получено. Вы можете получить доступ к нему с помощью results.status
storage Значение по умолчанию:
None
Целевое хранилище для полного клонирования.
tablet
    Варианты:
  • yes
  • no ←
Включает/отключает устройство USB планшета.
target Значение по умолчанию:
None
Целевой узел. Разрешено только если исходная виртуальная машина находится на общем хранилище.
Используется только с клонированием
tdf
    Варианты:
  • yes
  • no
Значение по умолчанию:
None
Включает/отключает исправление смещения времени.
template
    Варианты:
  • yes
  • no ←
Включает/отключает шаблон.
timeout Значение по умолчанию:
30
Таймаут для операций.
update
    Варианты:
  • yes
  • no ←
Если yes, виртуальная машина будет обновлена новыми значениями.
Из-за операций API и соображений безопасности я отключил обновление следующих параметров
net, virtio, ide, sata, scsi. Например, обновление net обновит MAC-адрес, а virtio всегда создаст новый диск...
validate_certs
    Варианты:
  • yes
  • no ←
Если no, сертификаты SSL не будут проверены. Это следует использовать только на контролируемых вами сайтах с самозаверяющими сертификатами.
vcpus Значение по умолчанию:
None
Устанавливает количество подключенных в реальном времени vCPU.
vga
    Варианты:
  • std ←
  • cirrus
  • vmware
  • qxl
  • serial0
  • serial1
  • serial2
  • serial3
  • qxl2
  • qxl3
  • qxl4
Выбор типа VGA. Если вы хотите использовать режимы высокого разрешения (>= 1280x1024x16), то вы должны использовать параметр 'std' или 'vmware'.
virtio Значение по умолчанию:
None
Хэш/словарь томов, используемых как VIRTIO жёсткий диск. virtio='{"key":"value", "key":"value"}'.
Разрешенные ключи - virto[n] где 0 ≤ n ≤ 15.
Разрешенные значения - "storage:size,format=value".
storage - идентификатор хранилища для создания диска.
size - размер диска в ГБ.
format - формат данных файла поддержки диска. qcow2|raw|subvol.
vmid Значение по умолчанию:
None
Указывает идентификатор виртуальной машины. Вместо этого используйте параметр name.
Если vmid не задан, следующий доступный идентификатор виртуальной машины будет получен из ProxmoxAPI.
watchdog Значение по умолчанию:
None
Создаёт виртуальное аппаратное устройство 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, созданных и подключённых к сети [n]. Полезно при использовании систем обеспечения, таких как Foreman, через PXE.

Пример:
{ "net0": "3E:6E:97:D2:31:9F", "net1": "B6:A1:FC:EF:78:A4" }
status
dict
успешно
Текущее состояние виртуальной машины.
Возвращается только при state=current.

Пример:
{ "changed": false, "msg": "Виртуальная машина kropta с vmid = 110 запущена", "status": "запущена" }
vmid
int
успешно
vmid виртуальной машины.

Пример:
115


Состояние

Этот модуль помечен как предварительный просмотр, что означает, что его интерфейс не гарантируется обратной совместимостью.

Автор

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

Spec-Zone.ru

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