ovirt_template – Модуль управления шаблонами виртуальных машин в oVirt/RHV
Обзор
- Модуль для управления шаблонами виртуальных машин в oVirt/RHV.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- python >= 2.7
- ovirt-engine-sdk-python >= 4.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| allow_partial_import логический тип добавлен в 2.4 |
| Логическое значение, указывающее, разрешить ли частичную регистрацию шаблона при регистрации state. | |
| auth словарь / обязательный | Словарь со значениями, необходимыми для создания HTTP/HTTPS-соединения с oVirt: | ||
| ca_file строка | Файл PEM, содержащий доверенные сертификаты CA. Представленный сервером сертификат будет проверен с использованием этих сертификатов CA. Если параметр ca_file не задан, используется системный хранилище сертификатов CA.Значение по умолчанию устанавливается переменной среды OVIRT_CAFILE. | ||
| headers словарь | Словарь HTTP-заголовков, которые нужно добавить к каждому API-запросу. | ||
| hostname строка | Строка, содержащая имя хоста сервера, обычно что-то вроде `server.example.com`. Значение по умолчанию устанавливается переменной среды OVIRT_HOSTNAME. Требуется либо url, либо hostname. | ||
| insecure логический тип |
| Логический флаг, указывающий, нужно ли проверять сертификат TLS сервера и имя хоста. | |
| kerberos логический тип |
| Логический флаг, указывающий, использовать ли аутентификацию Kerberos вместо стандартной аутентификации. | |
| password строка / обязательный | Пароль пользователя. Значение по умолчанию устанавливается переменной среды OVIRT_PASSWORD. | ||
| token строка | Токен, используемый вместо входа с именем пользователя/паролем. Значение по умолчанию устанавливается переменной среды OVIRT_TOKEN. | ||
| url строка | Строка, содержащая URL API сервера, обычно что-то вроде `https://server.example.com/ovirt-engine/api`. Значение по умолчанию устанавливается переменной среды OVIRT_URL. Требуется либо url, либо hostname. | ||
| username строка / обязательный | Имя пользователя, например, admin@internal. Значение по умолчанию устанавливается переменной среды OVIRT_USERNAME. | ||
| ballooning_enabled логический тип добавлен в 2.9 |
| Если истина, использовать баллонирование памяти. Баллонирование памяти — это виртуальный инструмент, который может использоваться для динамического перераспределения/возврата памяти хоста на основе потребностей виртуальной машины. Это позволяет создавать состояния сверхкоммитирования памяти. | |
| clone_name - добавлен в 2.8 | Имя для импорта шаблона из домена хранилища. Если не определено, используется name. | ||
| clone_permissions логический тип |
| Если истина, права виртуальной машины (только прямые, а не наследуемые) будут скопированы в созданный шаблон. Этот параметр используется только когда state присутствует. | |
| cloud_init - добавлен в 2.9 | Словарь со значениями для инициализации виртуальной машины с использованием cloud init. | ||
| authorized_ssh_keys - | Используйте эти SSH-ключи для входа в виртуальную машину. | ||
| custom_script - | Скрипт cloud-init, который будет выполнен на виртуальной машине при развертывании. Он добавляется в конец скрипта cloud-init, сгенерированного любыми другими параметрами. | ||
| dns_search - | Домены поиска DNS, которые нужно настроить на виртуальной машине. | ||
| dns_servers - | DNS-серверы, которые нужно настроить на виртуальной машине. | ||
| host_name - | Имя хоста, которое нужно установить для виртуальной машины при развертывании. | ||
| nic_boot_protocol - |
| Установить протокол загрузки сетевого интерфейса виртуальной машины. | |
| nic_gateway - | Если протокол загрузки — статический, установить шлюз сетевого интерфейса виртуальной машины. | ||
| nic_ip_address - | Если протокол загрузки — статический, установить этот IP-адрес для сетевого интерфейса виртуальной машины. | ||
| nic_name - | Установить имя сетевого интерфейса виртуальной машины. | ||
| nic_netmask - | Если протокол загрузки — статический, установить эту маску сети для сетевого интерфейса виртуальной машины. | ||
| nic_on_boot логический тип |
| Если истина, сетевой интерфейс будет включен при загрузке. | |
| regenerate_ssh_keys логический тип |
| Если истина, SSH-ключи будут сгенерированы заново на виртуальной машине. | |
| root_password - | Пароль для пользователя, указанного параметром user_name. | ||
| timezone - | Часовой пояс, который нужно установить на виртуальную машину при развертывании. | ||
| user_name - | Имя пользователя, используемое для установки пароля на виртуальную машину при развертывании. | ||
| cloud_init_nics - добавлен в 2.9 | Список словарей, представляющих сетевые интерфейсы, которые нужно настроить с помощью cloud init. Этот параметр используется, когда пользователю необходимо настроить более одного сетевого интерфейса с помощью cloud init. Если достаточно одного сетевого интерфейса, пользователь должен использовать параметры cloud_init nic_*. Параметры cloud_init nic_* объединяются с параметрами cloud_init_nics. | ||
| nic_boot_protocol - | Установить протокол загрузки сетевого интерфейса виртуальной машины. Может быть одним из none, dhcp или static. | ||
| nic_gateway - | Если протокол загрузки — статический, установить этот шлюз для сетевого интерфейса виртуальной машины. | ||
| nic_ip_address - | Если протокол загрузки — статический, установите этот IP-адрес на сетевой интерфейс виртуальной машины. | ||
| nic_name - | Установите имя сетевого интерфейса виртуальной машины. | ||
| nic_netmask - | Если протокол загрузки — статический, установите эту маску сети на сетевой интерфейс виртуальной машины. | ||
| nic_on_boot boolean |
| Если True, сетевой интерфейс будет настроен на запуск при загрузке. | |
| cluster - | Имя кластера, в котором шаблон должен быть создан/импортирован. | ||
| cluster_mappings - добавлено в 2.5 | Маппер, который сопоставляет имя кластера между OVF шаблона и целевым кластером, к которому должен быть зарегистрирован этот шаблон, актуально, когда state зарегистрирован. Сопоставление кластера описано следующим словарем: | ||
| dest_name - | Имя целевого кластера. | ||
| source_name - | Имя исходного кластера. | ||
| cpu_profile - | Профиль процессора, который должен быть установлен для шаблона. | ||
| description - | Описание шаблона. | ||
| domain_mappings - добавлено в 2.5 | Маппер, который сопоставляет имя домена aaa между OVF шаблона и целевым доменом aaa, к которому должен быть зарегистрирован этот шаблон, актуально, когда state зарегистрирован. Сопоставление домена aaa описывается следующим словарем: | ||
| dest_name - | Имя целевого домена aaa. | ||
| source_name - | Имя исходного домена aaa. | ||
| exclusive boolean |
| Когда state экспортируется, этот параметр указывает, нужно ли перезаписывать существующие шаблоны с таким же именем. | |
| export_domain - | При экспорте или импорте state, этот параметр задаёт имя домена хранилища экспорта. | ||
| fetch_nested boolean |
| Если True, модуль извлечёт дополнительные данные из API. Он извлечёт идентификаторы дисков, снимков и т.д. виртуальных машин. Пользователь может настроить извлечение других атрибутов вложенных сущностей, указав nested_attributes. | |
| id - добавлено в 2.4 | Идентификатор шаблона, который должен быть зарегистрирован. | ||
| image_disk - | При импорте state и использовании image_provider, этот параметр задаёт имя диска, который нужно импортировать в качестве шаблона.псевдонимы: glance_image_disk_name | ||
| image_provider - | При импорте state, этот параметр задаёт имя поставщика изображений, который нужно использовать. | ||
| io_threads - добавлено в 2.7 | Количество потоков ввода-вывода, используемых виртуальной машиной. 0 означает отключение многопоточности ввода-вывода. | ||
| memory - добавлено в 2.6 | Объём памяти шаблона. Префикс использует стандарт IEC 60027-2 (например, 1ГБ, 1024МБ). | ||
| memory_guaranteed - добавлено в 2.6 | Минимальный гарантированный объём памяти шаблона. Префикс использует стандарт IEC 60027-2 (например, 1ГБ, 1024МБ).
Параметр memory_guaranteed не может быть меньше параметра memory. | ||
| memory_max - добавлено в 2.6 | Максимальный объём памяти шаблона, до которого может быть выполнено динамическое расширение памяти. Префикс использует стандарт IEC 60027-2 (например, 1ГБ, 1024МБ). | ||
| name - | Имя шаблона для управления. | ||
| nested_attributes list | Указывает список атрибутов, которые необходимо извлечь из API. Этот параметр применяется только когда fetch_nested равен true. | ||
| nics - добавлено в 2.9 | Список сетевых интерфейсов (NIC), которые должны быть подключены к виртуальной машине. NIC описывается следующим словарем. | ||
| interface - |
| Тип сетевого интерфейса. | |
| mac_address - | Пользовательский MAC-адрес сетевого интерфейса, по умолчанию он берётся из пула MAC-адресов. | ||
| name - | Имя сетевого интерфейса. | ||
| profile_name - | Имя профиля, к которому должен быть подключён сетевой интерфейс. | ||
| operating_system - добавлено в 2.6 | Операционная система шаблона. Значение по умолчанию устанавливается движком oVirt/RHV. Возможные значения: debian_7, freebsd, freebsdx64, other, other_linux, other_linux_kernel_4, other_linux_ppc64, other_linux_s390x, other_ppc64, other_s390x, rhcos_x64, rhel_3, rhel_3x64, rhel_4, rhel_4x64, rhel_5, rhel_5x64, rhel_6, rhel_6_9_plus_ppc64, rhel_6_ppc64, rhel_6x64, rhel_7_ppc64, rhel_7_s390x, rhel_7x64, rhel_8x64, rhel_atomic7x64, sles_11, sles_11_ppc64, sles_12_s390x, ubuntu_12_04, ubuntu_12_10, ubuntu_13_04, ubuntu_13_10, ubuntu_14_04, ubuntu_14_04_ppc64, ubuntu_16_04_s390x, windows_10, windows_10x64, windows_2003, windows_2003x64, windows_2008, windows_2008R2x64, windows_2008x64, windows_2012R2x64, windows_2012x64, windows_2016x64, windows_2019x64, windows_7, windows_7x64, windows_8, windows_8x64, windows_xp | ||
| poll_interval integer | По умолчанию: 3 | Количество секунд, которое модуль ожидает, прежде чем отправить новый запрос на статус сущности. | |
| role_mappings - добавлено в 2.5 | Маппер, который сопоставляет имя роли между OVF шаблона и целевой ролью, к которой должен быть зарегистрирован этот шаблон, актуально, когда state зарегистрирован. Сопоставление роли описывается следующим словарем: | ||
| dest_name - | Имя целевой роли. | ||
| source_name - | Имя исходной роли. | ||
| seal boolean added in 2.5 |
| «Запечатывание» — это операция, стирающая все конфигурации, специфичные для машины, из файловой системы: это включает SSH-ключи, правила UDEV, MAC-адреса, идентификатор системы, имя хоста и т. д. Если true, последующие виртуальные машины, созданные из этой шаблона, не будут наследовать конфигурацию. Этот параметр используется только, когда state present. | |
| smartcard_enabled boolean added in 2.9 |
| Если true, использовать аутентификацию с помощью смарт-карты. | |
| soundcard_enabled boolean added in 2.9 |
| Если true, звуковая карта добавляется к виртуальной машине. | |
| sso boolean added in 2.9 |
|
True включить Single Sign On агентом гостя, False отключить его. По умолчанию выбирается движком oVirt/RHV. | |
| state - |
| Шаблон должен быть present/absent/exported/imported/registered. Когда state registered, и имя незарегистрированного шаблона принадлежит уже зарегистрированному шаблону в том же ЦОД, то незарегистрированный шаблон не регистрируется. | |
| storage_domain - | Когда state imported, этот параметр указывает имя целевого домена хранилища данных. Когда state registered, этот параметр указывает имя домена хранилища данных незарегистрированного шаблона. | ||
| sysprep - added in 2.9 | Словарь со значениями для инициализации виртуальной машины Windows с помощью sysprep. | ||
| active_directory_ou - | Организационная единица Active Directory, используемая для входа пользователя. | ||
| domain - | Домен, который будет установлен для виртуальной машины Windows. | ||
| host_name - | Имя хоста, которое будет установлено для виртуальной машины при развертывании. | ||
| input_locale - | Локализация ввода виртуальной машины Windows. | ||
| org_name - | Имя организации, которое будет установлено для виртуальной машины Windows. | ||
| root_password - | Пароль, который будет установлен для имени пользователя виртуальной машины Windows. | ||
| system_locale - | Локализация системы виртуальной машины Windows. | ||
| timezone - | Временная зона, которая будет установлена для виртуальной машины Windows. | ||
| ui_language - | Язык интерфейса виртуальной машины Windows. | ||
| user_name - | Имя пользователя, которое будет использоваться для установки пароля на виртуальной машине Windows. | ||
| windows_license_key - | Ключ лицензии, который будет установлен для виртуальной машины Windows. | ||
| template_image_disk_name - added in 2.4 | Когда state imported и используется image_provider, этот параметр указывает новое имя для импортированного диска; если опущен, по умолчанию используется имя image_disk. Этот параметр используется только в случае импорта образа диска из домена Glance. | ||
| timeout integer | По умолчанию: 180 | Время в секундах, которое модуль должен ждать, пока экземпляр не перейдет в желаемое состояние. | |
| timezone - added in 2.9 | Устанавливает смещение временной зоны часового пояса гостевого аппаратного таймера. Например Etc/GMT
| ||
| usb_support boolean added in 2.9 |
|
True включить поддержку USB, False отключить её. По умолчанию выбирается движком oVirt/RHV. | |
| version - added in 2.8 | name - Название этой версии.number - Индекс этой версии в иерархии версий шаблона. Используется для редактирования дочернего шаблона. | ||
| vm - | Имя ВМ, которое будет использовано для создания шаблона. | ||
| vnic_profile_mappings - added in 2.5 | Отображение, которое сопоставляет внешний профиль виртуальной сетевой карты с профилем, который существует в движке, когда state registered. vnic_profile описывается следующим словарем: | ||
| source_network_name - | Имя сети источника. | ||
| source_profile_name - | Имя профиля, связанного с исходной сетью. | ||
| target_profile_id - | Идентификатор целевого профиля, который будет сопоставлен в движке. | ||
| wait boolean |
| yes если модуль должен ждать, пока сущность не перейдет в желаемое состояние. | |
Примечания
Примечание
- Для использования этого модуля необходимо установить oVirt Python SDK. Чтобы убедиться, что он установлен с правильной версией, можно создать следующую задачу: pip: name=ovirt-engine-sdk-python version=4.3.0
Примеры
# Examples don't contain auth parameter for simplicity,
# look at ovirt_auth module to see how to reuse authentication:
# Create template from vm
- ovirt_template:
cluster: Default
name: mytemplate
vm: rhel7
cpu_profile: Default
description: Test
# Import template
- ovirt_template:
state: imported
name: mytemplate
export_domain: myexport
storage_domain: mystorage
cluster: mycluster
# Remove template
- ovirt_template:
state: absent
name: mytemplate
# Change Template Name
- ovirt_template:
id: 00000000-0000-0000-0000-000000000000
name: "new_template_name"
# Register template
- ovirt_template:
state: registered
storage_domain: mystorage
cluster: mycluster
name: mytemplate
# Register template using id
- ovirt_template:
state: registered
storage_domain: mystorage
cluster: mycluster
id: 1111-1111-1111-1111
# Register template, allowing partial import
- ovirt_template:
state: registered
storage_domain: mystorage
allow_partial_import: "True"
cluster: mycluster
id: 1111-1111-1111-1111
# Register template with vnic profile mappings
- ovirt_template:
state: registered
storage_domain: mystorage
cluster: mycluster
id: 1111-1111-1111-1111
vnic_profile_mappings:
- source_network_name: mynetwork
source_profile_name: mynetwork
target_profile_id: 3333-3333-3333-3333
- source_network_name: mynetwork2
source_profile_name: mynetwork2
target_profile_id: 4444-4444-4444-4444
# Register template with mapping
- ovirt_template:
state: registered
storage_domain: mystorage
cluster: mycluster
id: 1111-1111-1111-1111
role_mappings:
- source_name: Role_A
dest_name: Role_B
domain_mappings:
- source_name: Domain_A
dest_name: Domain_B
cluster_mappings:
- source_name: cluster_A
dest_name: cluster_B
# Import image from Glance s a template
- ovirt_template:
state: imported
name: mytemplate
image_disk: "centos7"
template_image_disk_name: centos7_from_glance
image_provider: "glance_domain"
storage_domain: mystorage
cluster: mycluster
# Edit template subversion
- ovirt_template:
cluster: mycluster
name: mytemplate
vm: rhel7
version:
number: 2
name: subversion
# Create new template subversion
- ovirt_template:
cluster: mycluster
name: mytemplate
vm: rhel7
version:
name: subversion
- name: Template with cloud init
ovirt_template:
name: mytemplate
cluster: Default
memory: 1GiB
cloud_init:
nic_boot_protocol: static
nic_ip_address: 10.34.60.86
nic_netmask: 255.255.252.0
nic_gateway: 10.34.63.254
nic_name: eth1
nic_on_boot: true
host_name: example.com
custom_script: |
write_files:
- content: |
Hello, world!
path: /tmp/greeting.txt
permissions: '0644'
user_name: root
root_password: super_password
- name: Template with cloud init, with multiple network interfaces
ovirt_template:
name: mytemplate
cluster: mycluster
cloud_init_nics:
- nic_name: eth0
nic_boot_protocol: dhcp
nic_on_boot: true
- nic_name: eth1
nic_boot_protocol: static
nic_ip_address: 10.34.60.86
nic_netmask: 255.255.252.0
nic_gateway: 10.34.63.254
nic_on_boot: true
- name: Template with timezone and nic
ovirt_template:
cluster: MyCluster
name: mytemplate
timezone: America/Godthab
memory_max: 2Gib
nics:
- name: nic1
- name: Template with sysprep
ovirt_vm:
name: windows2012R2_AD
cluster: Default
memory: 3GiB
sysprep:
host_name: windowsad.example.com
user_name: Administrator
root_password: SuperPassword123
Возвращаемые значения
Общие возвращаемые значения документированы здесь, следующие являются полями, уникальными для этого модуля:
| Ключ | Возвращено | Описание |
|---|---|---|
| id string | При успехе, если шаблон найден. | Идентификатор управляемого шаблона Пример: 7de90f31-222c-436c-a1ca-7e655bd5b60c |
| template dictionary | При успехе, если шаблон найден. | Словарь всех атрибутов шаблона. Атрибуты шаблона можно найти на вашем экземпляре oVirt/RHV по следующему URL-адресу: http://ovirt.github.io/ovirt-engine-api-model/master/#types/template. |
Статус
- Этот модуль не гарантирует обратную совместимость интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- Ondra Machacek (@machacekondra)
Подсказка
Если вы заметили какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/ovirt_template_module.html