Работа с шаблонами zVirt с помощью Ansible
Пояснение
Для использования шаблонов, а также их управлением можно использовать модули коллекции Ansible ovirt.ovirt. Также можно использовать коллекцию oVirt Ansible Collection, в которую входит роль image_template, позволяющая добавлять в zVirt шаблоны из QCOW2-образов или при указании URL-ссылки на такой образ.
В примерах использования ниже предполагается, что Playbook запускается с Менеджера управления, информация о запуске Playbook с внешнего хоста представлена во Введении в автоматизацию работы zVirt с помощью Ansible
1. Создание шаблонов с помощью модуля "ovirt_template"
Для создания шаблона из ВМ можно воспользоваться модулем ovirt_template.
Также данный модуль позволяет удалять и переименовывать шаблоны, импортировать шаблоны и управлять их версионностью.
В качестве простого примера ниже представлен Task’и, который создаёт простой шаблон из определённой ВМ:
- name: Create template from VM
ovirt_template:
cluster: Default # указание кластера
storage_domain: StorageName # в каком домене хранить шаблон
name: TemplateName # название шаблона
vm: rhel8 # название ВМ, из которой будет создан шаблон
description: Test # описание шаблона
Ниже представлен пример Task’и, с помощью которой можно импортировать шаблон из экспорт домена.
- name:
ovirt_template:
auth: "{{ ovirt_auth }}"
state: imported # для импорта обязательно нужно указать состояние imported
cluster: Default
name: Template
export_domain: FromDomain # также нужно указать название экспорт-домена
storage_domain: ToDomain # и имя целевого домена, в который шаблон будет импортирован
description: Test
Для удаления шаблона, нужно указать его имя и задать параметр state: absent.
2. Создание шаблонов с помощью роли "image_template"
2.1. Переменные
Шаблоны и подключение к zVirt описываются с помощью переменных.
Основными переменными являются:
engine_fqdn: # FQDN-имя менеджера управления
engine_user: # Логин для авторизации
engine_password: # Пароль для авторизации
engine_cafile: # Переменная отвечает за корневой сертификат менеджера управления
template_cluster: # Эта переменная указывает в каком кластере создать шаблон
template_name: # Данная переменная задаёт название шаблону
template_memory: # Объём оперативной памяти
template_cpu: # Количество ЦПУ, назначаемых ВМ
template_disk_size: # Объём диска ВМ
template_disk_storage: # Домен хранения шаблона
Некоторые переменные зависят от источника, которые будет использоваться для создания шаблона. Список всех переменных представлен в README-файле в каталоге с самой ролью.
2.2. Пример
Для создания шаблона из образа QCOW2 используется переменная qcow_url. В данной переменной указывается HTTP/S ссылка на QCOW2 образ или локальный путь до образа.
Пример создания шаблона из образа QCOW2 представлен ниже:
- name: Create a template from qcow2
hosts: localhost
connection: local
gather_facts: false
vars:
engine_fqdn: zvirt-engine.example.com
engine_user: ansible@internal
engine_password: 123456
engine_cafile: /etc/pki/ovirt-engine/ca.pem
qcow_url: https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2
# Пример указания локального пути к образу QCOW2 ниже
# qcow_url: file:///qcow2/CentOS7.qcow2
template_cluster: Default
template_name: centos7_template
template_memory: 4GiB
template_cpu: 2
template_disk_size: 10GiB
template_disk_storage: mydata
roles:
- image_template
Перед созданием шаблона из локального образа, рекомендуется назначить владельцем директории с образом и самого образа vdsm:kvm, для этого необходимо выполнить команду:
|
3. Создание ВМ из шаблонов
Для создания ВМ из шаблона, используется модуль ovirt_vm с параметрами template.
Простой пример Task’и, с помощью которой можно создать ВМ из шаблона, представлен ниже:
- name: Create VM
ovirt_vm:
state: present
cluster: Default
name: VMName
template: TemplateName
Если нужно создать ВМ из шаблона с предразмеченным диском, шаблон также должен быть создан с использованием RAW-формата дисков, а также указать следующие параметры: disk_format: raw и clone: true. Пример task’и представлен ниже:
|