Модуль community.libvirt.virt — управление виртуальными машинами, поддерживаемыми libvirt
Примечание
Этот модуль входит в коллекцию community.libvirt (версия 2.2.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните команду ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.libvirt. Для использования этого модуля могут потребоваться дополнительные зависимости. Подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.libvirt.virt.
Обзор
- Управление виртуальными машинами, поддерживаемыми libvirt.
Требования
На узле, на котором выполняется этот модуль, должны быть установлены следующие компоненты.
- python >= 2.6
- привязки Python для libvirt
- lxml
Параметры
Параметр | Комментарии |
|---|---|
autostart boolean | Запускать виртуальную машину при загрузке узла. Варианты:
|
command string | Помимо управления состоянием доступны различные неидемпотентные команды. Варианты:
|
flags list / elements=string | Передача дополнительных параметров. В настоящее время реализовано только для команды Варианты:
|
force boolean | Принудительное выполнение действия. В настоящее время реализовано только для команды Варианты:
|
mutate_flags list / elements=string | Для каждого mutate_flag заданный XML будет изменен определенным образом. ADD_UUID добавит в XML UUID существующего домена, если он отсутствует. ADD_MAC_ADDRESSES найдет интерфейсы в существующем домене с совпадающим псевдонимом и скопирует их MAC-адрес. Совпадающий интерфейс не обязательно должен иметь тот же тип или исходную сеть. ADD_MAC_ADDRESSES_FUZZY попытается сопоставить входящие интерфейсы с интерфейсами существующего домена, имеющими тот же тип и исходную сеть/устройство. Результат может не всегда соответствовать ожиданиям, особенно если домен содержит несколько интерфейсов, подключенных к одному устройству узла, и только у некоторых из этих устройств есть элементы <mac>. Будьте осторожны и проведите тестирование для вашего конкретного случая использования! Варианты:
По умолчанию: |
name псевдонимы: guest string | Имя управляемой гостевой виртуальной машины. Обратите внимание, что виртуальная машина должна быть предварительно определена с помощью XML. Этот параметр обязателен, если только command не имеет значение |
state string | Обратите внимание, что выполнение запросов состояния, например Варианты:
|
uri string | URI подключения к libvirt. По умолчанию: |
xml string | XML-документ, используемый командой define. Необходимо указать необработанное содержимое XML с помощью |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Поддерживает check_mode. |
Примеры
# a playbook task line:
- name: Start a VM
community.libvirt.virt:
name: alpha
state: running
# /usr/bin/ansible invocations
# ansible host -m virt -a "name=alpha command=status"
# ansible host -m virt -a "name=alpha command=get_xml"
# ansible host -m virt -a "name=alpha command=create uri=lxc:///"
# defining and launching an LXC guest
- name: Define a VM
community.libvirt.virt:
command: define
xml: "{{ lookup('template', 'container-template.xml.j2') }}"
uri: 'lxc:///'
- name: start vm
community.libvirt.virt:
name: foo
state: running
uri: 'lxc:///'
# setting autostart on a qemu VM (default uri)
- name: Set autostart for a VM
community.libvirt.virt:
name: foo
autostart: true
# Defining a VM and making is autostart with host. VM will be off after this task
- name: Define vm from xml and set autostart
community.libvirt.virt:
command: define
xml: "{{ lookup('template', 'vm_template.xml.j2') }}"
autostart: true
# Undefine VM only, if it has no existing nvram or other metadata
- name: Undefine qemu VM
community.libvirt.virt:
command: undefine
name: foo
# Undefine VM and force remove all of its related metadata (nvram, snapshots, etc.)
- name: "Undefine qemu VM with force"
community.libvirt.virt:
command: undefine
name: foo
force: true
# Undefine VM and remove all of its specified metadata specified
# Result would the same as with force=true
- name: Undefine qemu VM with list of flags
community.libvirt.virt:
command: undefine
name: foo
flags: managed_save, snapshots_metadata, nvram, checkpoints_metadata
# Undefine VM, but keep its nvram
- name: Undefine qemu VM and keep its nvram
community.libvirt.virt:
command: undefine
name: foo
flags: keep_nvram
# Listing VMs
- name: List all VMs
community.libvirt.virt:
command: list_vms
register: all_vms
- name: List only running VMs
community.libvirt.virt:
command: list_vms
state: running
register: running_vms
Возвращаемые значения
Общие возвращаемые значения описаны здесь. Ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
list_vms list / elements=string | Список виртуальных машин, определенных в удаленной системе. Возвращается: при успешном выполнении Пример: |
status string | Состояние виртуальной машины: работает, аварийно завершена, приостановлена или выключена. Возвращается: при успешном выполнении Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/libvirt/virt_module.html