infra
oVirt Infra
Эта роль была перенесена в oVirt Ansible Collection, пожалуйста, используйте последнюю версию оттуда. Этот репозиторий теперь доступен только для чтения и больше не используется для активной разработки.
Роль ovirt.infra
позволяет вам настроить инфраструктуру oVirt, включая: пула MAC-адресов, дата-центры, кластеры, сети, хосты, пользователей и группы.
Целевая машина
Если вы используете эту роль для управления пользователями, она будет использовать ovirt-aaa-jdbc-tool
, который находится на машине с движком, поэтому вы должны запускать роль на машине с движком.
Примечание
Обратите внимание, что при установке этой роли из Ansible Galaxy вам будет предложено выполнить следующую команду:
$ ansible-galaxy install ovirt.infra
Это загрузит роль в директорию с тем же именем, что и вы указали в командной строке, в данном случае ovirt.infra
. Но обратите внимание на регистронезависимость, поэтому, если вы укажете, например, OVIRT.infra
, она загрузит ту же роль, но добавит ее в директорию с именем OVIRT.infra
, и вам всегда придется использовать эту роль с префиксом в верхнем регистре. Так что будьте осторожны, указывая имя роли в командной строке.
При установке RPM мы устанавливаем три устаревших имени: ovirt.infra
, oVirt.infra
и ovirt-infra
. Поэтому вы можете использовать любое из этих имен. Эта документация и примеры в этом репозитории используют имя ovirt.infra
. Имена ролей oVirt.infra
и ovirt-infra
устарели.
Требования
- oVirt Python SDK версии 4.3
- Ansible версии 2.9
Переменные роли
Датацентр
Чтобы настроить/очистить датацентр, вы можете использовать следующие переменные:
Имя | Значение по умолчанию | Описание |
---|---|---|
data_center_name | UNDEF | Имя датацентра. |
data_center_description | UNDEF | Описание датацентра. |
data_center_local | false | Укажите, является ли датацентр общим или локальным. |
compatibility_version | UNDEF | Совместимая версия датацентра. |
data_center_state | present | Укажите, должен ли датацентр присутствовать или отсутствовать. |
recursive_cleanup | false | Укажите, нужно ли рекурсивно удалить все сущности внутри ДЦ. Действительно только при state == absent. |
format_storages | false | Укажите, нужно ли отформатировать все хранилища, которые будут удалены как часть ДЦ. Действительно только при data_center_state == absent и recursive_cleanup == true. |
Пулы MAC-адресов
Чтобы настроить пулы MAC-адресов, вы можете определить список переменной с именем mac_pools
.
Элементы в списке переменной mac_pools
могут содержать следующие параметры:
Имя | Значение по умолчанию | Описание |
---|---|---|
mac_pool_name | UNDEF | Имя пула MAC-адресов для управления. |
mac_pool_ranges | UNDEF | Список диапазонов MAC-адресов. От и до должны быть разделены запятой. Например: 00:1a:4a:16:01:51,00:1a:4a:16:01:61 |
mac_pool_allow_duplicates | UNDEF | Если (true), разрешить использование одного и того же MAC-адреса несколько раз в пуле. Значение по умолчанию установлено движком oVirt в false. |
Кластеры
Чтобы настроить кластеры, вы можете определить список переменной с именем clusters
.
Элементы в списке переменной clusters
могут содержать следующие параметры:
Имя | Значение по умолчанию | Описание |
---|---|---|
name | UNDEF (Обязательно) | Имя кластера. |
state | present | Состояние кластера. |
cpu_type | Intel Conroe Family | Тип ЦП кластера. |
profile | UNDEF | Профиль кластера. Вы можете выбрать предопределенный профиль, смотрите таблицы ниже. |
ballooning | UNDEF | Если True, включите оптимизацию памяти с помощью balloon. Мембранный шар используется для перераспределения/восстановления памяти хоста на основе потребностей ВМ динамически. |
description | UNDEF | Описание кластера. |
ksm | UNDEF | Если True, MoM позволяет запускать объединение одинаковых страниц ядра KSM, когда это необходимо и когда оно может принести экономию памяти, превышающую его затраты на ЦП. |
ksm_numa | UNDEF | Если True, включает KSM ksm для лучшей производительности внутри узлов NUMA. |
vm_reason | UNDEF | Если True, включает дополнительное поле причины, когда виртуальная машина отключена от менеджера, позволяя администратору предоставить объяснение для обслуживания. |
host_reason | UNDEF | Если True, включает дополнительное поле причины, когда хост помещен в режим обслуживания из менеджера, позволяя администратору предоставить объяснение для обслуживания. |
memory_policy alias: performance_preset |
UNDEF |
|
migration_policy | UNDEF | Политика миграции определяет условия для живой миграции виртуальных машин в случае отказа хоста. Поддерживаются следующие политики:
|
scheduling_policy | UNDEF | Политика планирования, используемая кластером. |
ha_reservation | UNDEF | Если True, включает мониторинг oVirt/RHV ёмкости кластера для высокодоступных виртуальных машин. |
fence_enabled | UNDEF | Если True, включает ограждение кластера. |
fence_connectivity_threshold | UNDEF | Порог, используемый fence_skip_if_connectivity_broken. |
fence_skip_if_connectivity_broken | UNDEF | Если True, ограждение будет временно отключено, если процент хостов в кластере, испытывающих проблемы с подключением, больше или равен определенному порогу. |
fence_skip_if_sd_active | UNDEF | Если True, любые хосты в кластере, которые не отвечают и все еще подключены к хранилищу, не будут ограждены. |
mac_pool | UNDEF | Имя пула MAC. |
comment | UNDEF | Комментарий к кластеру. |
migration_bandwidth | UNDEF | Настройки ширины канала определяют максимальную ширину канала как исходящих, так и входящих миграций на хосте. Поддерживаются следующие варианты ширины канала:
|
migration_bandwidth_limit | UNDEF | Установите пользовательский лимит ширины канала миграции. |
network | UNDEF | Управляющая сеть кластера для доступа к хостам кластера. |
resilience_policy | UNDEF | Политика устойчивости определяет, как виртуальные машины приоритизируются в миграции. Поддерживаются следующие значения:
|
rng_sources | UNDEF | Список, который указывает устройства генератора случайных чисел, которые будут использовать все хосты в кластере. Поддерживаются генераторы: hwrng и random. |
serial_policy | UNDEF | Укажите политику серийного номера для виртуальных машин в кластере. Поддерживаются следующие варианты:
|
serial_policy_value | UNDEF | Позволяет указать кастомный серийный номер. Этот параметр используется только когда serial_policy является кастомным. |
spice_proxy | UNDEF | Прокси-сервер, через который клиент SPICE будет подключаться к виртуальным машинам. Адрес должен быть в следующем формате: протокол://[хост]:[порт] |
switch_type | UNDEF | Тип свитча, который будет использоваться всеми сетями в данном кластере. Либо legacy, который использует linux bridge, либо ovs, используя Open vSwitch. |
threads_as_cores | UNDEF | Если True, потоки хоста будут рассматриваться как ядра, которые могут использоваться виртуальными машинами. |
trusted_service | UNDEF | Если True, включает интеграцию с сервером OpenAttestation. |
virt | UNDEF | Если True, хосты в этом кластере будут использоваться для запуска виртуальных машин. По умолчанию true. |
gluster | UNDEF | Если True, хосты в этом кластере будут использоваться в качестве узлов сервера Gluster Storage, а не для запуска виртуальных машин. |
external_network_providers | UNDEF | Список, который указывает внешние сетевые провайдеры, доступные в кластере. |
Дополнительную информацию о параметрах можно найти в документации модуля ovirt_cluster.
Профиль кластера
Возможные варианты profile
кластера - это development
и production
, их значения по умолчанию описаны ниже:
Разработка
Профиль кластера development
имеет предустановленные следующие значения:
Параметр | Значение |
---|---|
ballooning | true |
ksm | true |
host_reason | false |
vm_reason | false |
memory_policy | server |
migration_policy | post_copy |
Производство
Профиль кластера production
имеет предустановленные следующие значения:
Параметр | Значение |
---|---|
ballooning | false |
ksm | false |
host_reason | true |
vm_reason | true |
memory_policy | disabled |
migration_policy | suspend_workload |
scheduling_policy | evenly_distributed |
ha_reservation | true |
fence_enabled | true |
fence_skip_if_connectivity_broken | true |
fence_skip_if_sd_active | true |
Хосты
Чтобы настроить хосты, вы можете определить список переменной с именем hosts
.
Элементы в списке переменной hosts
могут содержать следующие параметры:
Имя | Значение по умолчанию | Описание |
---|---|---|
name | UNDEF (Обязательно) | Имя хоста. |
state | present | Указывает, должен ли хост быть present или absent . |
address | UNDEF | IP-адрес или FQDN хоста. |
password | UNDEF | Корневой пароль хоста. Обязательно, если public_key равно false. |
public_key | UNDEF | Если true, должен быть использован публичный ключ для аутентификации на хосте. |
cluster | UNDEF (Обязательно) | Кластер, к которому должен подключаться хост. |
timeout | 1800 | Максимальное время ожидания для состояния "включен" хоста. |
poll_interval | 20 | Интервал опроса для проверки статуса хоста. |
hosted_engine | UNDEF | Указывает, является ли хост 'развернутым' как хост с движком. |
power_management | UNDEF | Управление питанием. Вы можете выбрать предопределенные переменные, смотрите таблицы ниже. |
В случае, если вы не можете использовать переменную hosts
по какой-либо причине в своем плейбуке, вы можете изменить имя этой переменной, переопределив значение переменной hosts_var_name
. Пример:
- name: Настройка инфраструктуры oVirt
hosts: engine
roles:
- role: ovirt.infra
vars:
hosts_var_name: ovirt_hosts
ovirt_hosts:
- name: host_0
state: present
address: 1.2.3.4
password: 123456
cluster: Default
Управление питанием хоста
Параметр power_management
имеет предустановленные следующие значения:
Имя | Значение по умолчанию | Описание |
---|---|---|
address | UNDEF | Адрес интерфейса управления питанием. |
state | present | Должно ли управление питанием хоста быть присутствующим/отсутствующим. |
username | UNDEF | Имя пользователя для подключения к интерфейсу управления питанием. |
password | UNDEF | Пароль пользователя, указанного в параметре C(username). |
type | UNDEF | Тип управления питанием. Значения по умолчанию oVirt/RHV: drac5, ipmilan, rsa, bladecenter, alom, apc, apc_snmp, eps, wti, rsb, cisco_ucs, drac7, hpblade, ilo, ilo2, ilo3, ilo4, ilo_ssh, но пользователь может определить свой собственный тип. |
options | UNDEF | Словарь дополнительных параметров агента ограждения (включая слот управления питанием). Дополнительную информацию можно найти по адресу https://github.com/ClusterLabs/fence-agents/blob/master/doc/FenceAgentAPI.md. |
port | UNDEF | Порт интерфейса управления питанием. |
Сети
Логические сети
Чтобы настроить логические сети, вы можете определить список переменной с именем logical_networks
.
Список logical_networks
может содержать следующие параметры:
Имя | Значение по умолчанию | Описание |
---|---|---|
name | UNDEF | Имя сети. |
state | present | Указывает, должно ли состояние сети быть present или absent . |
vlan_tag | UNDEF | Укажите VLAN тег. |
vm_network | True | Если True, сеть будет помечена как сеть для ВМ. |
mtu | UNDEF | Максимальный размер передачи (MTU) сети. |
description | UNDEF | Описание сети. |
clusters | UNDEF | Список словарей, описывающих, как сеть управляется в конкретном кластере. |
label | UNDEF | Имя метки, которую нужно назначить сети. |
Дополнительную информацию о параметрах можно найти в документации модуля ovirt_network.
Сети хостов
Чтобы настроить сети хостов, вы можете определить список переменной с именем host_networks
.
Список host_networks
может содержать следующие параметры:
Имя | Значение по умолчанию | Описание |
---|---|---|
name | UNDEF | Имя хоста. |
state | UNDEF | Указывает, должно ли состояние сети быть present или absent . |
check | UNDEF | Если true, проверяет соединение между хостом и движком. |
save | UNDEF | Если true, конфигурация сети будет постоянной, по умолчанию она временная. |
bond | UNDEF | Словарь, описывающий объединение сети. |
networks | UNDEF | Словарь, описывающий сети, которые должны быть подключены к интерфейсу или объединению. |
labels | UNDEF | Список имен меток сети, которые нужно назначить объединению или интерфейсу. |
interface | UNDEF | Имя сетевого интерфейса, к которому должна быть подключена логическая сеть. |
Дополнительную информацию о параметрах можно найти в документации модуля ovirt_host_network.
Хранилища
Чтобы настроить хранилища, вы можете определить словарную переменную с именем storages
.
Значение элемента в словаре storages
может содержать следующие параметры (ключ всегда является именем хранилища):
Имя | Значение по умолчанию | Описание |
---|---|---|
master | false | Если true, хранилище будет добавлено как первое хранилище, что означает, что оно будет главным хранилищем. |
domain_function | data | Функция домена хранения. Возможные значения:
|
localfs | UNDEF | Словарь, определяющий локальное хранилище. |
nfs | UNDEF | Словарь, определяющий NFS хранилище. |
iscsi | UNDEF | Словарь, определяющий iSCSI хранилище. |
posixfs | UNDEF | Словарь, определяющий PosixFS хранилище. |
fcp | UNDEF | Словарь, определяющий FCP хранилище. |
glusterfs | UNDEF | Словарь, определяющий glusterFS хранилище. |
discard_after_delete | UNDEF | Если True, блоки домена хранения будут удалены после удаления. Включено по умолчанию. Этот параметр применим только к доменам хранения на основе блоков. |
Дополнительную информацию о параметрах можно найти в документации модуля ovirt_storage_domain.
AAA JDBC
Пользователи
Чтобы настроить пользователей в провайдере AAA JDBC, вы можете определить словарную переменную с именем users
.
Элементы в списке users
могут содержать следующие параметры:
Имя | Значение по умолчанию | Описание |
---|---|---|
state | present | Указывает, должен ли пользователь быть present или absent . |
name | UNDEF | Имя пользователя. |
authz_name | UNDEF | Провайдер авторизации пользователя. |
password | UNDEF | Пароль пользователя. |
valid_to | UNDEF | Указывает дату, до которой учетная запись остается действительной. |
attributes | UNDEF | Словарь атрибутов, связанных с пользователем. Доступные атрибуты:
|
Группы пользователей
Чтобы настроить группы пользователей в провайдере AAA JDBC, вы можете определить словарную переменную с именем user_groups
.
Элементы в списке user_groups
могут содержать следующие параметры:
Имя | Значение по умолчанию | Описание |
---|---|---|
state | present | Указывает, должна ли группа быть present или absent . |
name | UNDEF | Имя группы. |
authz_name | UNDEF | Провайдер авторизации группы. |
users | UNDEF | Список пользователей, принадлежащих этой группе. |
Разрешения
Чтобы настроить разрешения пользователей или групп, вы можете определить словарную переменную с именем permissions
.
Элементы в списке переменной permissions
могут содержать следующие параметры:
Имя | Значение по умолчанию | Описание |
---|---|---|
state | present | Указывает, должно ли состояние разрешения быть present или absent . |
user_name | UNDEF | Пользователь, для которого управляется разрешение. |
group_name | UNDEF | Имя группы, для которой управляется разрешение. |
authz_name | UNDEF | Имя провайдера авторизации группы или пользователя. |
role | UNDEF | Роль, которая будет назначена пользователю или группе. |
object_type | UNDEF | Тип объекта, который должен использоваться для назначения разрешения. Возможные типы объектов:
|
object_name | UNDEF | Имя объекта, к которому должно быть назначено разрешение. |
Внешние провайдеры
Чтобы настроить внешние провайдеры, вы можете определить словарную переменную с именем external_providers
.
Элементы в списке переменной external_providers
могут содержать следующие параметры:
Имя | Значение по умолчанию | Описание |
---|---|---|
name | UNDEF (Обязательно) | Имя внешнего провайдера. |
state | present | Состояние внешнего провайдера. Значения могут быть:
|
type | UNDEF (Обязательно) | Тип внешнего провайдера. Значения могут быть:
|
url | UNDEF | URL, где находится внешний провайдер. Обязательно, если состояние - present. |
username | UNDEF | Имя пользователя для входа во внешний провайдер. Применимо для всех типов. |
password | UNDEF | Пароль пользователя, указанного в параметре username. Применимо для всех типов. |
tenant | UNDEF | Имя арендатора. |
auth_url | UNDEF | URL аутентификации Keystone для провайдера OpenStack. Обязательно для:
|
data_center | UNDEF | Имя датацентра, к которому должен быть подключен провайдер. Применимо для типа os_volume. |
authentication_keys | UNDEF | Список ключей аутентификации. Каждый ключ представлен словарем, например {'uuid': 'my-uuid', 'value': 'секретное значение'}. Добавлено в ansible 2.6. Применимо для типа os_volume. |
Дополнительную информацию о параметрах можно найти в документации модуля ovirt_external_provider.
Пример плейбука
---
- name: Инфраструктура oVirt
hosts: localhost
connection: local
gather_facts: false
vars:
engine_fqdn: ovirt-engine.example.com
engine_user: admin@internal
engine_password: 123456
engine_cafile: /etc/pki/ovirt-engine/ca.pem
data_center_name: mydatacenter
compatibility_version: 4.1
mac_pools:
- mac_pool_name: "Default"
mac_pool_ranges:
- "00:1a:4a:16:01:51,00:1a:4a:16:01:61"
clusters:
- name: production
cpu_type: Intel Conroe Family
profile: production
hosts:
- name: myhost
address: 1.2.3.4
cluster: production
password: 123456
- name: myhost1
address: 5.6.7.8
cluster: production
password: 123456
power_management:
address: 9.8.7.6
username: root
password: password
type: ipmilan
options:
myoption1: x
myoption2: y
slot: myslot
storages:
mynfsstorage:
master: true
state: present
nfs:
address: 10.11.12.13
path: /the_path
myiscsistorage:
state: present
iscsi:
target: iqn.2014-07.org.ovirt:storage
port: 3260
address: 100.101.102.103
username: username
password: password
lun_id: 3600140551fcc8348ea74a99b6760fbb4
mytemplates:
domain_function: export
nfs:
address: 100.101.102.104
path: /exports/nfs/exported
myisostorage:
domain_function: iso
nfs:
address: 100.101.102.105
path: /exports/nfs/iso
logical_networks:
- name: mynetwork
clusters:
- name: production
assigned: yes
required: no
display: no
migration: yes
gluster: no
host_networks:
- name: myhost1
check: true
save: true
bond:
name: bond0
mode: 2
interfaces:
- eth2
- eth3
networks:
- name: mynetwork
boot_protocol: dhcp
users:
- name: john.doe
authz_name: internal-authz
password: 123456
valid_to: "2018-01-01 00:00:00Z"
- name: joe.doe
authz_name: internal-authz
password: 123456
valid_to: "2018-01-01 00:00:00Z"
user_groups:
- name: admins
authz_name: internal-authz
users:
- john.doe
- joe.doe
permissions:
- state: present
user_name: john.doe
authz_name: internal-authz
role: UserROle
object_type: cluster
object_name: production
- state: present
group_name: admins
authz_name: internal-authz
role: UserVmManager
object_type: cluster
object_name: production
external_providers:
- name: myglance
type: os_image
state: present
url: http://externalprovider.example.com:9292
username: admin
password: secret
tenant: admin
auth_url: http://externalprovider.example.com:35357/v2.0/
pre_tasks:
- name: Вход в oVirt
ovirt_auth:
hostname: "{{ engine_fqdn }}"
username: "{{ engine_user }}"
password: "{{ engine_password }}"
ca_file: "{{ engine_cafile | default(omit) }}"
insecure: "{{ engine_insecure | default(true) }}"
tags:
- всегда
roles:
- ovirt.infra
post_tasks:
- name: Выход из oVirt
ovirt_auth:
state: absent
ovirt_auth: "{{ ovirt_auth }}"
tags:
- всегда
Лицензия
Лицензия Apache 2.0
ansible-galaxy install oVirt/ovirt-ansible-infra