Модуль community.libvirt.virt – Управление виртуальными машинами, поддерживаемыми libvirt
Примечание
Этот модуль является частью коллекции community.libvirt (версия 1.3.0).
Эта коллекция может быть уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить, установлена ли она, выполните команду ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.libvirt. Для использования этого модуля необходимы дополнительные компоненты, подробности см. в разделе Требования.
Для использования в playbook, укажите: community.libvirt.virt.
Краткое описание
- Управляет виртуальными машинами, поддерживаемыми libvirt.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- python >= 2.6
- libvirt python bindings
Параметры
Параметр | Комментарии |
|---|---|
autostart boolean | Запускать виртуальную машину при запуске хоста. Варианты:
|
command string | В дополнение к управлению состоянием доступны различные неидемпотентные команды. Варианты:
|
flags list / elements=string | Передать дополнительные параметры. В настоящее время реализовано только с командой Варианты:
|
force boolean | Принудительно выполнить действие. В настоящее время реализовано только с командой Варианты:
|
mutate_flags list / elements=string | Для каждого mutate_flag мы будем изменять данный XML определенным образом ADD_UUID добавит существующий UUID домена в xml, если он отсутствует ADD_MAC_ADDRESSES найдет интерфейсы в существующем домене с совпадающим псевдонимом и скопирует MAC-адрес. Совпадающий интерфейс не обязательно должен быть того же типа или исходной сети. ADD_MAC_ADDRESSES_FUZZY попытается сопоставить входящие интерфейсы с интерфейсами существующего домена, имеющими тот же тип и исходную сеть/устройство. Это не всегда приводит к ожидаемому результату, особенно если домен имеет несколько интерфейсов, подключенных к одному и тому же устройству хоста, и только некоторые из этих устройств имеют <mac>s. Будьте осторожны, проведите тестирование для вашего конкретного случая использования! Варианты:
По умолчанию: |
name псевдонимы: guest string | Имя управляемой виртуальной машины. Обратите внимание, что виртуальная машина должна быть предварительно определена с помощью xml. Этот параметр обязателен, если command не равно |
state string | Обратите внимание, что для запросов состояния, таких как Варианты:
|
uri string | URI подключения Libvirt. По умолчанию: |
xml string | XML-документ, используемый с командой define. Должно быть необработанное содержимое XML с использованием |
Примеры
# 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:
name: foo
# Undefine VM and force remove all of its related metadata (nvram, snapshots, etc.)
- name: "Undefine qemu VM with force"
community.libvirt.virt:
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:
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:
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 список / элементы=строка | Список виртуальных машин, определённых на удалённой системе. Возвращается при: успехе Пример: |
status строка | Состояние ВМ, среди работающих, аварийно завершенных, приостановленных и выключенных. Возвращается при: успехе Пример: |
Ссылки на сборку
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/libvirt/virt_module.html