Spec-Zone.ru › Ansible 2.8

kubevirt_vm – Управление виртуальными машинами KubeVirt

Новая версия с 2.8.

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения
  • Статус

Обзор

  • Используйте Openshift Python SDK для управления состоянием виртуальных машин KubeVirt.

Требования

Ниже перечислены требования к хосту, на котором выполняется этот модуль.

  • openshift >= 0.8.2
  • python >= 2.7

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
api_key
строка
Токен, используемый для аутентификации с API. Также может быть задан через переменную окружения K8S_AUTH_API_KEY.
bootloader
строка
Укажите загрузчик виртуальной машины.
По умолчанию все виртуальные машины используют BIOS для загрузки.
ca_cert
путь
Путь к сертификату CA, используемому для аутентификации с API. Для избежания ошибок проверки сертификата необходимо указать полный цепочку сертификатов. Также может быть задан через переменную окружения K8S_AUTH_SSL_CA_CERT.

псевдонимы: ssl_ca_cert
client_cert
путь
Путь к сертификату, используемому для аутентификации с API. Также может быть задан через переменную окружения K8S_AUTH_CERT_FILE.

псевдонимы: cert_file
client_key
путь
Путь к файлу ключа, используемому для аутентификации с API. Также может быть задан через переменную окружения K8S_AUTH_KEY_FILE.

псевдонимы: key_file
cloud_init_nocloud
словарь
Представляет источник данных пользователя cloud-init NoCloud. Данные NoCloud будут добавлены как диск к виртуальной машине. Требуется соответствующая установка cloud-init в гостевой системе. Дополнительная информация https://kubevirt.io/api-reference/master/definitions.html#_v1_cloudinitnocloudsource
context
строка
Имя контекста, найденного в файле конфигурации. Также может быть задан через переменную окружения K8S_AUTH_CONTEXT.
cpu_cores
целое число
Количество ядер процессора.
cpu_features
список
Список словарей для настройки функций, предоставляемых выбранной моделью процессора.
Примечание: Атрибут Policy может быть опущен или содержать один из следующих политик: force, require, optional, disable, forbid.
Примечание: Если политика опущена для функции, она по умолчанию устанавливается как require.
Дополнительная информация о политиках: https://libvirt.org/formatdomain.html#elementsCPU
cpu_limit
целое число
Преобразуется в значение миллиядер и умножается на 100. Результирующее значение — общее количество времени работы процессора, которое может использовать контейнер каждые 100 мс. Виртуальная машина не может использовать больше времени работы процессора, чем ее доля во время этого интервала.
cpu_model
строка
Модель процессора.
Список доступных моделей можно найти здесь: https://github.com/libvirt/libvirt/blob/master/src/cpu_map/index.xml.
Примечание: Пользователь может определить модель процессора по умолчанию как default-cpu-model в kubevirt-config ConfigMap. Если не задано, используется host-model.
Примечание: Убедитесь, что модель процессора узла, на котором вы запускаете ВМ, имеет ту же или более высокую семейство процессоров.
Примечание: Если модель процессора не была определена, у ВМ будет модель процессора, наиболее близкая к модели, используемой на узле, где ВМ запускается.
cpu_shares
целое число
Укажите долю процессора.
datavolumes
список
DataVolumes — способ автоматизации импорта дисков виртуальной машины на pvcs во время запуска виртуальной машины. Без использования DataVolume пользователи должны подготовить pvc с образом диска перед назначением его виртуальной машине или манифесту VMI. С DataVolume создание pvc и импорт выполняются автоматически от имени пользователя.
disks
список
Список словарей, определяющих диски виртуальной машины.
Диск может быть доступен через четыре разных типа: disk, lun, cdrom, floppy.
Все возможные параметры конфигурации доступны в https://kubevirt.io/api-reference/master/definitions.html#_v1_disk
Каждый диск должен иметь указанный volume, который объявляет тип тома диска. Все возможные параметры конфигурации тома доступны в https://kubevirt.io/api-reference/master/definitions.html#_v1_volume.
ephemeral
логическое значение
    Варианты:
  • нет ←
  • да
Если (true), будет создана временная виртуальная машина. При удалении она больше недоступна.
Работает только с state present и absent.
force
логическое значение
    Варианты:
  • нет ←
  • да
Если установлено no, и состояние — present, существующий объект будет заменён.
headless
-
Укажите, должна ли виртуальная машина иметь минимальную конфигурацию устройства видео и графики.
По умолчанию для VirtualMachineInstance будет применена минимальная конфигурация устройства видео и графики. Видеоустройство совместимо с VGA и имеет размер памяти 16 МБ.
host
строка
Укажите URL для доступа к API. Также может быть задан через переменную окружения K8S_AUTH_HOST.
hugepage_size
строка
Укажите размер огромных страниц.
interfaces
список
Интерфейс определяет виртуальный сетевой интерфейс виртуальной машины (также называется передним интерфейсом).
Все возможные параметры конфигурации интерфейсов доступны в https://kubevirt.io/api-reference/master/definitions.html#_v1_interface
Каждый интерфейс должен иметь указанный network, который объявляет, с каким логическим или физическим устройством он подключен (также называется задним интерфейсом). Все возможные параметры конфигурации сети доступны в https://kubevirt.io/api-reference/master/definitions.html#_v1_network.
kubeconfig
путь
Путь к существующему файлу конфигурации Kubernetes. Если не указано, и не указаны другие параметры подключения, клиент openshift попытается загрузить файл конфигурации по умолчанию из ~/.kube/config.json. Также может быть задан через переменную окружения K8S_AUTH_KUBECONFIG.
labels
словарь
Метки — пары «ключ/значение», прикрепленные к виртуальным машинам. Метки предназначены для указания идентификационных атрибутов виртуальных машин, имеющих значение для пользователей, но не прямо подразумевают семантику для ядра системы. Метки могут использоваться для организации и выбора подмножеств виртуальных машин. Метки могут быть прикреплены к виртуальным машинам во время создания и впоследствии добавлены и изменены в любое время.
Подробнее о метках, используемых для внутренней реализации https://kubevirt.io/user-guide/#/misc/annotations_and_labels
machine_type
строка
Тип машины QEMU — фактический чипсет виртуальной машины.
memory
строка
Объем памяти, запрашиваемый виртуальной машиной.
Например, 1024Mi.
memory_limit
строка
Максимальный объем памяти, используемый виртуальной машиной.
Например, 1024Mi.
merge_type
список
    Варианты:
  • json
  • merge
  • strategic-merge
Укажите, нужно ли переопределить подход к слиянию патчей по умолчанию с использованием конкретного типа.
Если задано несколько типов слияния, типы слияния будут использоваться в указанном порядке.
По умолчанию ['strategic-merge', 'merge'], что идеально подходит для использования одних и тех же параметров для типов ресурсов, которые объединяют пользовательские ресурсы и встроенные ресурсы, так как определения пользовательских ресурсов, как правило, не могут обновляться с помощью обычного стратегического слияния.
См. https://kubernetes.io/docs/tasks/run-application/update-api-object-kubectl-patch/#use-a-json-merge-patch-to-update-a-deployment
имя
строка / обязательно
Имя виртуальной машины.
пространство_имен
строка / обязательно
Пространство имён, в котором существует виртуальная машина.
пароль
строка
Укажите пароль для аутентификации с API. Также можно указать через переменную окружения K8S_AUTH_PASSWORD.
Пожалуйста, ознакомьтесь с описанием параметра username для понимания случаев применения этого параметра.
определение_ресурса
словарь
Частичное YAML-определение создаваемого/обновляемого объекта. Здесь можно определить параметры Kubernetes-ресурса, не покрытые параметрами данного модуля.
ПРИМЕЧАНИЕ: определение_ресурса имеет более низкий приоритет, чем параметры модуля. Если вы попытаетесь определить, например, metadata.namespace здесь, это значение будет проигнорировано, и вместо него будет использовано пространство_имен.

алиасы: определение, встроенное
smbios_uuid
строка
Для обеспечения согласованного представления виртуализированного оборудования для гостевой ОС можно установить SMBIOS UUID.
состояние
строка
    Варианты:
  • наличие ←
  • отсутствует
  • работает
  • остановлено
Установите виртуальную машину в наличие, отсутствует, работает или остановлено.
наличие - Создать или обновить виртуальную машину. (И запустить её, если она временная).
отсутствует - Удалить виртуальную машину.
работает - Создать или обновить виртуальную машину и запустить её.
остановлено - Остановить виртуальную машину. (Это удаляет временные виртуальные машины).
таблетки
список
Укажите используемые таблетки как устройства ввода.
шаблон
строка
Имя шаблона, используемого при создании виртуальной машины.
параметры_шаблона
словарь
Новые значения параметров из шаблона.
имя_пользователя
строка
Укажите имя пользователя для аутентификации с API. Также можно указать через переменную окружения K8S_AUTH_USERNAME.
Обратите внимание, что это работает только с кластерами, настроенными на использование HTTP Basic Auth. Если ваш кластер имеет другой тип аутентификации (например, OAuth2 в OpenShift), этот параметр не будет работать должным образом, и вам следует изучить модуль k8s_auth, поскольку он может выполнять необходимые действия.
проверять_сертификаты
логическое
    Варианты:
  • нет
  • да
Выполнять проверку SSL-сертификатов API-сервера. Также можно указать через переменную окружения K8S_AUTH_VERIFY_SSL.

алиасы: проверять_ssl
ждать
логическое
    Варианты:
  • нет
  • да ←
Истина, если модуль должен ждать, пока ресурс не перейдёт в нужное состояние.
время_ожидания
целое
По умолчанию:
120
Время в секундах, которое модуль должен ждать, пока ресурс не перейдёт в нужное состояние.

Примечания

Примечание

  • Клиент OpenShift Python оборачивает K8s Python клиент, предоставляя полный доступ ко всем API и моделям, доступным на обеих платформах. Для получения информации о версиях API и дополнительной информации посетите https://github.com/openshift/openshift-restclient-python
  • Чтобы избежать ошибок проверки SSL-сертификатов, когда validate_certs равно истина, цепочка полного сертификата API-сервера должна быть предоставлена через ca_cert или в файле kubeconfig.
  • Для использования этого модуля необходимо установить Openshift Python SDK. Чтобы убедиться, что он установлен с правильной версией, можно создать следующую задачу: pip: name=openshift>=0.8.2

Примеры

- name: Start virtual machine 'myvm'
  kubevirt_vm:
      state: running
      name: myvm
      namespace: vms

- name: Create virtual machine 'myvm' and start it
  kubevirt_vm:
      state: running
      name: myvm
      namespace: vms
      memory: 64Mi
      cpu_cores: 1
      bootloader: efi
      smbios_uuid: 5d307ca9-b3ef-428c-8861-06e72d69f223
      cpu_model: Conroe
      headless: true
      hugepage_size: 2Mi
      tablets:
        - bus: virtio
          name: tablet1
      cpu_limit: 3
      cpu_shares: 2
      disks:
        - name: containerdisk
          volume:
            containerDisk:
              image: kubevirt/cirros-container-disk-demo:latest
              path: /custom-disk/cirros.img
          disk:
            bus: virtio

- name: Create virtual machine 'myvm' with multus network interface
  kubevirt_vm:
      name: myvm
      namespace: vms
      memory: 512M
      interfaces:
        - name: default
          bridge: {}
          network:
            pod: {}
        - name: mynet
          bridge: {}
          network:
            multus:
              networkName: mynetconf

- name: Combine inline definition with Ansible parameters
  kubevirt_vm:
      # Kubernetes specification:
      definition:
        metadata:
          labels:
            app: galaxy
            service: web
            origin: vmware

      # Ansible parameters:
      state: running
      name: myvm
      namespace: vms
      memory: 64M
      disks:
        - name: containerdisk
          volume:
            containerDisk:
              image: kubevirt/cirros-container-disk-demo:latest
              path: /custom-disk/cirros.img
          disk:
            bus: virtio

- name: Start ephemeral virtual machine 'myvm' and wait to be running
  kubevirt_vm:
      ephemeral: true
      state: running
      wait: true
      wait_timeout: 180
      name: myvm
      namespace: vms
      memory: 64M
      labels:
        kubevirt.io/vm: myvm
      disks:
        - name: containerdisk
          volume:
            containerDisk:
              image: kubevirt/cirros-container-disk-demo:latest
              path: /custom-disk/cirros.img
          disk:
            bus: virtio

- name: Start fedora vm with cloud init
  kubevirt_vm:
      state: running
      wait: true
      name: myvm
      namespace: vms
      memory: 1024M
      cloud_init_nocloud:
        userData: |-
          #cloud-config
          password: fedora
          chpasswd: { expire: False }
      disks:
        - name: containerdisk
          volume:
            containerDisk:
              image: kubevirt/fedora-cloud-container-disk-demo:latest
              path: /disk/fedora.qcow2
          disk:
            bus: virtio

- name: Remove virtual machine 'myvm'
  kubevirt_vm:
      state: absent
      name: myvm
      namespace: vms

Значения возврата

Общие возвращаемые значения описаны здесь, следующие — поля, уникальные для данного модуля:

Ключ Возвращаемое Описание
kubevirt_vm
сложное
успех
Спецификация словаря виртуальной машины, возвращённая API.
Этот словарь содержит все значения, возвращённые API KubeVirt; все опции описаны здесь https://kubevirt.io/api-reference/master/definitions.html#_v1_virtualmachine



Состояние

  • Этот модуль не гарантирует обратную совместимость интерфейса. [превью]
  • Этот модуль поддерживается сообществом Ansible. [community]

Авторы

  • Команда KubeVirt (@kubevirt)

Подсказка

Если вы обнаружите какие-либо проблемы в данной документации, вы можете отредактировать этот документ, чтобы улучшить его.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/kubevirt_vm_module.html

Spec-Zone.ru

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