Spec-Zone.ru › Ansible

Модуль 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

Запускать виртуальную машину при запуске хоста.

Варианты:

  • false
  • true

command

string

В дополнение к управлению состоянием доступны различные неидемпотентные команды.

Варианты:

  • "create"
  • "define"
  • "destroy"
  • "freemem"
  • "get_xml"
  • "info"
  • "list_vms"
  • "nodeinfo"
  • "pause"
  • "shutdown"
  • "start"
  • "status"
  • "stop"
  • "undefine"
  • "unpause"
  • "virttype"

flags

list / elements=string

Передать дополнительные параметры.

В настоящее время реализовано только с командой undefine. Укажите, какие метаданные следует удалить с помощью undefine. Полезный параметр для возможности undefine гостей с UEFI nvram. nvram и keep_nvram конфликтуют и являются взаимоисключающими. Рассмотрите параметр force, если необходимо удалить все связанные метаданные.

Варианты:

  • "managed_save"
  • "snapshots_metadata"
  • "nvram"
  • "keep_nvram"
  • "checkpoints_metadata"

force

boolean

Принудительно выполнить действие.

В настоящее время реализовано только с командой undefine. Этот параметр можно использовать вместо предоставления всех flags. Если true, undefine также удаляет любые связанные данные nvram или другие метаданные, если они существуют. Если false или не задано, undefine выполняется только если нет данных nvram или других метаданных. В противном случае задача завершается неудачей, и гость остается определенным без изменений. true и параметр flags не должны предоставляться вместе. В этом случае undefine игнорирует true, учитывает только flags и выдает предупреждение.

Варианты:

  • false
  • true

mutate_flags

list / elements=string

Для каждого mutate_flag мы будем изменять данный XML определенным образом

ADD_UUID добавит существующий UUID домена в xml, если он отсутствует

ADD_MAC_ADDRESSES найдет интерфейсы в существующем домене с совпадающим псевдонимом и скопирует MAC-адрес. Совпадающий интерфейс не обязательно должен быть того же типа или исходной сети.

ADD_MAC_ADDRESSES_FUZZY попытается сопоставить входящие интерфейсы с интерфейсами существующего домена, имеющими тот же тип и исходную сеть/устройство. Это не всегда приводит к ожидаемому результату, особенно если домен имеет несколько интерфейсов, подключенных к одному и тому же устройству хоста, и только некоторые из этих устройств имеют <mac>s. Будьте осторожны, проведите тестирование для вашего конкретного случая использования!

Варианты:

  • "ADD_UUID" ← (по умолчанию)
  • "ADD_MAC_ADDRESSES"
  • "ADD_MAC_ADDRESSES_FUZZY"

По умолчанию: ["ADD_UUID"]

name

псевдонимы: guest

string

Имя управляемой виртуальной машины. Обратите внимание, что виртуальная машина должна быть предварительно определена с помощью xml.

Этот параметр обязателен, если command не равно list_vms или info.

state

string

Обратите внимание, что для запросов состояния, таких как shutdown, может быть некоторое время ожидания, поскольку они относятся только к состояниям виртуальной машины. После запуска гостя он может быть недоступен немедленно. Параметры state и command являются взаимоисключающими, за исключением случая, когда command=list_vms. В этом случае будут перечислены все виртуальные машины в указанном состоянии.

Варианты:

  • "destroyed"
  • "paused"
  • "running"
  • "shutdown"

uri

string

URI подключения Libvirt.

По умолчанию: "qemu:///system"

xml

string

XML-документ, используемый с командой define.

Должно быть необработанное содержимое XML с использованием lookup. 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

список / элементы=строка

Список виртуальных машин, определённых на удалённой системе.

Возвращается при: успехе

Пример: ["build.example.org", "dev.example.org"]

status

строка

Состояние ВМ, среди работающих, аварийно завершенных, приостановленных и выключенных.

Возвращается при: успехе

Пример: "success"

Авторы

  • Команда разработчиков Ansible
  • Майкл ДеХан
  • Сет Видаль (@skvidal)

Ссылки на сборку

  • Система отслеживания ошибок
  • Репозиторий (источники)

© 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

Spec-Zone.ru

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