ovirt.infra
oVirt Infra
Ce rôle a été migré vers oVirt Ansible Collection, merci d'utiliser la dernière version à partir de là. Ce dépôt est désormais en lecture seule et n'est plus utilisé pour le développement actif.
Le rôle ovirt.infra
vous permet de configurer l'infrastructure oVirt, y compris : pools de MAC, centres de données, clusters, réseaux, hôtes, utilisateurs et groupes.
Machine cible
Si vous utilisez ce rôle pour la gestion des utilisateurs, il utilisera ovirt-aaa-jdbc-tool
, qui se trouve sur la machine d'engine, donc vous devez exécuter ce rôle sur la machine d'engine.
Note
Veuillez noter que lorsque vous installez ce rôle à partir d'Ansible Galaxy, vous devez exécuter la commande suivante :
$ ansible-galaxy install ovirt.infra
Cela téléchargera le rôle dans le répertoire avec le même nom que celui que vous avez spécifié sur la ligne de commande, dans ce cas ovirt.infra
. Mais notez que c'est sensible à la casse, donc si vous spécifiez par exemple OVIRT.infra
, cela téléchargera le même rôle, mais l'ajoutera dans un répertoire nommé OVIRT.infra
, donc vous devrez toujours utiliser ce rôle avec le préfixe en majuscule. Faites donc attention à la manière dont vous spécifiez le nom du rôle sur la ligne de commande.
Pour l'installation RPM, nous installons trois noms obsolètes ovirt.infra
, oVirt.infra
et ovirt-infra
. Vous pouvez utiliser n'importe lequel de ces noms. Cette documentation et les exemples dans ce dépôt utilisent le nom ovirt.infra
. Les noms de rôle oVirt.infra
et ovirt-infra
sont obsolètes.
Exigences
- oVirt Python SDK version 4.3
- Ansible version 2.9
Variables de rôle
Centre de données
Pour configurer/ nettoyer un centre de données, vous pouvez utiliser les variables suivantes :
Nom | Valeur par défaut | Description |
---|---|---|
data_center_name | UNDEF | Nom du centre de données. |
data_center_description | UNDEF | Description du centre de données. |
data_center_local | false | Indiquer si le centre de données est partagé ou local. |
compatibility_version | UNDEF | Version de compatibilité du centre de données. |
data_center_state | present | Indiquer si le centre de données doit être présent ou absent. |
recursive_cleanup | false | Indiquer s'il faut supprimer de manière récursive toutes les entités à l'intérieur du DC. Valide uniquement lorsque l'état == absent. |
format_storages | false | Indiquer s'il faut formater TOUS les stockages qui vont être supprimés dans le cadre du DC. Valide uniquement lorsque data_center_state == absent et recursive_cleanup == true. |
Pools MAC
Pour configurer les pools MAC, vous pouvez définir une variable de liste appelée mac_pools
.
Les éléments de la liste mac_pools
peuvent contenir les paramètres suivants :
Nom | Valeur par défaut | Description |
---|---|---|
mac_pool_name | UNDEF | Nom du pool MAC à gérer. |
mac_pool_ranges | UNDEF | Liste des plages MAC. La plage de début et de fin doit être séparée par une virgule. Par exemple : 00:1a:4a:16:01:51,00:1a:4a:16:01:61 |
mac_pool_allow_duplicates | UNDEF | Si (true) autorise une adresse MAC à être utilisée plusieurs fois dans un pool. La valeur par défaut est définie par l'engine oVirt sur false. |
Clusters
Pour configurer les clusters, vous pouvez définir une variable de liste appelée clusters
.
Les éléments de la liste clusters
peuvent contenir les paramètres suivants :
Nom | Valeur par défaut | Description |
---|---|---|
name | UNDEF (Obligatoire) | Nom du cluster. |
state | present | État du cluster. |
cpu_type | Intel Conroe Family | Type de CPU du cluster. |
profile | UNDEF | Le profil du cluster. Vous pouvez choisir un profil de cluster prédéfini, voir les tableaux ci-dessous. |
ballooning | UNDEF | Si vrai, active l'optimisation de la mémoire par ballon. La mémoire par ballon est utilisée pour redistribuer/reclamer la mémoire de l'hôte selon les besoins des VM de manière dynamique. |
description | UNDEF | Description du cluster. |
ksm | UNDEF | Si vrai, MoM permet d'exécuter le regroupement de pages du noyau (KSM) lorsque cela est nécessaire et que cela peut apporter un bénéfice d'économie de mémoire supérieur à son coût CPU. |
ksm_numa | UNDEF | Si vrai, active KSM pour la meilleure performance à l'intérieur des nœuds NUMA. |
vm_reason | UNDEF | Si vrai, active un champ de raison facultatif lorsque une machine virtuelle est arrêtée à partir du gestionnaire, permettant à l'administrateur de fournir une explication pour la maintenance. |
host_reason | UNDEF | Si vrai, active un champ de raison facultatif lorsque un hôte est placé en mode maintenance à partir du gestionnaire, permettant à l'administrateur de fournir une explication pour la maintenance. |
memory_policy alias: performance_preset |
UNDEF |
|
migration_policy | UNDEF | Une politique de migration définit les conditions pour migrer des machines virtuelles en direct en cas de défaillance d'hôte. Les politiques suivantes sont prises en charge :
|
scheduling_policy | UNDEF | La politique de planification utilisée par le cluster. |
ha_reservation | UNDEF | Si vrai, permet à oVirt/RHV de surveiller la capacité du cluster pour les machines virtuelles hautement disponibles. |
fence_enabled | UNDEF | Si vrai, active le grillage sur le cluster. |
fence_connectivity_threshold | UNDEF | Le seuil utilisé par fence_skip_if_connectivity_broken. |
fence_skip_if_connectivity_broken | UNDEF | Si vrai, le grillage sera temporairement désactivé si le pourcentage d'hôtes dans le cluster rencontrant des problèmes de connectivité est supérieur ou égal au seuil défini. |
fence_skip_if_sd_active | UNDEF | Si vrai, tous les hôtes dans le cluster qui ne répondent pas et qui sont toujours connectés au stockage ne seront pas grillés. |
mac_pool | UNDEF | Nom du pool MAC. |
comment | UNDEF | Commentaire du cluster. |
migration_bandwidth | UNDEF | Les paramètres de bande passante définissent la bande passante maximale des migrations sortantes et entrantes par hôte. Les options de bande passante suivantes sont prises en charge :
|
migration_bandwidth_limit | UNDEF | Définir la limite de bande passante de migration personnalisée. |
network | UNDEF | Réseau de gestion du cluster pour accéder aux hôtes du cluster. |
resilience_policy | UNDEF | La politique de résilience définit comment les machines virtuelles sont priorisées lors de la migration. Valeurs prises en charge :
|
rng_sources | UNDEF | Liste spécifiant les périphériques de générateur de nombres aléatoires que tous les hôtes du cluster utiliseront. Les générateurs pris en charge sont : hwrng et random. |
serial_policy | UNDEF | Spécifie une politique de numéro de série pour les machines virtuelles dans le cluster. Options prises en charge :
|
serial_policy_value | UNDEF | Permet de spécifier un numéro de série personnalisé. Ce paramètre n'est utilisé que lorsque serial_policy est personnalisé. |
spice_proxy | UNDEF | Le proxy par lequel le client SPICE se connectera aux machines virtuelles. L'adresse doit être dans le format suivant : protocole://[hôte]:[port] |
switch_type | UNDEF | Type de commutateur à utiliser par tous les réseaux dans le cluster donné. Soit héritage en utilisant un pont linux ou OVS utilisant Open vSwitch. |
threads_as_cores | UNDEF | Si vrai, les threads exposés de l'hôte seront traités comme des cœurs pouvant être utilisés par les machines virtuelles. |
trusted_service | UNDEF | Si vrai, active l'intégration avec un serveur OpenAttestation. |
virt | UNDEF | Si vrai, les hôtes dans ce cluster seront utilisés pour exécuter des machines virtuelles. La valeur par défaut est vraie. |
gluster | UNDEF | Si vrai, les hôtes dans ce cluster seront utilisés comme nœuds serveur de stockage Gluster et non pour exécuter des machines virtuelles. |
external_network_providers | UNDEF | Liste spécifiant les fournisseurs de réseaux externes disponibles dans le cluster. |
Plus d'informations sur les paramètres peuvent être trouvées dans la documentation du module ovirt_cluster.
Profil du cluster
Les options possibles de profil
pour le cluster sont développement
et production
, leurs valeurs par défaut sont décrites ci-dessous :
Développement
Le profil développement
du cluster a les valeurs prédéfinies suivantes :
Paramètre | Valeur |
---|---|
ballooning | true |
ksm | true |
host_reason | false |
vm_reason | false |
memory_policy | server |
migration_policy | post_copy |
Production
Le profil production
du cluster a les valeurs prédéfinies suivantes :
Paramètre | Valeur |
---|---|
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 |
Hôtes
Pour configurer des hôtes, vous pouvez définir une variable de liste appelée hosts
.
Les éléments de la liste hosts
peuvent contenir les paramètres suivants :
Nom | Valeur par défaut | Description |
---|---|---|
name | UNDEF (Obligatoire) | Nom de l'hôte. |
state | present | Spécifie si l'hôte est présent ou absent . |
address | UNDEF | Adresse IP ou FQDN de l'hôte. |
password | UNDEF | Mot de passe root de l'hôte. Nécessaire si public_key est faux. |
public_key | UNDEF | Si true, la clé publique doit être utilisée pour authentifier l'hôte. |
cluster | UNDEF (Obligatoire) | Le cluster auquel l'hôte doit se connecter. |
timeout | 1800 | Temps d'attente maximum pour que l'hôte soit en état UP. |
poll_interval | 20 | Intervalle de sondage pour vérifier l'état de l'hôte. |
hosted_engine | UNDEF | Spécifie si l'hôte est 'déployé' en tant qu'engine hébergé. |
power_management | UNDEF | Le management de puissance. Vous pouvez choisir des variables prédéfinies, voir les tableaux ci-dessous. |
Dans le cas où vous ne pouvez pas utiliser la variable hosts
pour une raison quelconque dans votre playbook, vous pouvez changer le nom de cette variable en écrasant la valeur de la variable hosts_var_name
. Exemples :
- name: Configurer l'infrastructure 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
Gestion de l'alimentation des hôtes
La gestion de l'alimentation a les valeurs prédéfinies suivantes :
Nom | Valeur par défaut | Description |
---|---|---|
address | UNDEF | Adresse de l'interface de gestion de l'alimentation. |
state | present | La gestion de l'alimentation de l'hôte doit-elle être présente/absente. |
username | UNDEF | Nom d'utilisateur utilisé pour se connecter à l'interface de gestion de l'alimentation. |
password | UNDEF | Mot de passe de l'utilisateur spécifié dans le paramètre C(username). |
type | UNDEF | Type de gestion de l'alimentation. Les valeurs prédéfinies oVirt/RHV sont drac5, ipmilan, rsa, bladecenter, alom, apc, apc_snmp, eps, wti, rsb, cisco_ucs, drac7, hpblade, ilo, ilo2, ilo3, ilo4, ilo_ssh, mais l'utilisateur peut avoir un type personnalisé défini. |
options | UNDEF | Dictionnaire d'options supplémentaires pour l'agent de grillage (y compris le slot de gestion d'alimentation). Des informations complémentaires sur les options peuvent être trouvées sur FenceAgentAPI. |
port | UNDEF | Port de l'interface de gestion de l'alimentation. |
Réseaux
Réseaux logiques
Pour configurer des réseaux logiques, vous pouvez définir une variable de liste appelée logical_networks
.
La liste logical_networks
peut contenir les paramètres suivants :
Nom | Valeur par défaut | Description |
---|---|---|
name | UNDEF | Nom du réseau. |
state | present | Spécifie si l'état du réseau est présent ou absent . |
vlan_tag | UNDEF | Spécifier le tag VLAN. |
vm_network | True | Si vrai, le réseau sera marqué comme un réseau pour VM. |
mtu | UNDEF | Unité de transmission maximale (MTU) du réseau. |
description | UNDEF | Description du réseau. |
clusters | UNDEF | Liste de dictionnaires décrivant comment le réseau est géré dans un cluster spécifique. |
label | UNDEF | Nom de l'étiquette à attribuer au réseau. |
Plus d'informations sur les paramètres peuvent être trouvées dans la documentation du module ovirt_network.
Réseaux d'hôtes
Pour configurer les réseaux d'hôtes, vous pouvez définir une variable de liste appelée host_networks
.
La liste host_networks
peut contenir les paramètres suivants :
Nom | Valeur par défaut | Description |
---|---|---|
name | UNDEF | Nom de l'hôte. |
state | UNDEF | Spécifie si l'état du réseau est présent ou absent . |
check | UNDEF | Si vrai, vérifie la connexion entre l'hôte et l'engine. |
save | UNDEF | Si vrai, la configuration du réseau sera persistante, par défaut elle est temporaire. |
bond | UNDEF | Dictionnaire décrivant le bond du réseau. |
networks | UNDEF | Dictionnaire décrivant les réseaux à attacher à l'interface ou au bond. |
labels | UNDEF | Liste des noms d'étiquettes de réseau à attribuer au bond ou à l'interface. |
interface | UNDEF | Nom de l'interface réseau où le réseau logique doit être attaché. |
Plus d'informations sur les paramètres peuvent être trouvées dans la documentation du module ovirt_host_network.
Stockages
Pour configurer des stockages, vous pouvez définir une variable de dictionnaire appelée storages
.
La valeur d'un élément dans storages
peut contenir les paramètres suivants (la clé est toujours un nom de stockage) :
Nom | Valeur par défaut | Description |
---|---|---|
master | false | Si vrai, le stockage sera ajouté comme premier stockage, signifiant qu'il sera le stockage principal. |
domain_function | data | La fonction du domaine de stockage. Les valeurs possibles sont :
|
localfs | UNDEF | Dictionnaire définissant le stockage local. |
nfs | UNDEF | Dictionnaire définissant le stockage NFS. |
iscsi | UNDEF | Dictionnaire définissant le stockage iSCSI. |
posixfs | UNDEF | Dictionnaire définissant le stockage PosixFS. |
fcp | UNDEF | Dictionnaire définissant le stockage FCP. |
glusterfs | UNDEF | Dictionnaire définissant le stockage glusterFS. |
discard_after_delete | UNDEF | Si vrai, les blocs de domaine de stockage seront supprimés après suppression. Activé par défaut. Ce paramètre n'est pertinent que pour les domaines de stockage basés sur des blocs. |
Plus d'informations sur les paramètres peuvent être trouvées dans la documentation du module ovirt_storage_domain.
AAA JDBC
Utilisateurs
Pour configurer des utilisateurs dans le fournisseur AAA JDBC, vous pouvez définir une variable de dictionnaire appelée users
.
Les éléments de la liste users
peuvent contenir les paramètres suivants :
Nom | Valeur par défaut | Description |
---|---|---|
state | present | Spécifie si l'utilisateur est présent ou absent . |
name | UNDEF | Nom de l'utilisateur. |
authz_name | UNDEF | Fournisseur d'autorisation de l'utilisateur. |
password | UNDEF | Mot de passe de l'utilisateur. |
valid_to | UNDEF | Spécifie la date jusqu'à laquelle le compte reste valide. |
attributes | UNDEF | Un dictionnaire d'attributs liés à l'utilisateur. Attributs disponibles :
|
Groupes d'utilisateurs
Pour configurer des groupes d'utilisateurs dans le fournisseur AAA JDBC, vous pouvez définir une variable de dictionnaire appelée user_groups
.
Les éléments de la liste user_groups
peuvent contenir les paramètres suivants :
Nom | Valeur par défaut | Description |
---|---|---|
state | present | Spécifie si le groupe est présent ou absent . |
name | UNDEF | Nom du groupe. |
authz_name | UNDEF | Fournisseur d'autorisation du groupe. |
users | UNDEF | Liste des utilisateurs appartenant à ce groupe. |
Permissions
Pour configurer les permissions des utilisateurs ou des groupes, vous pouvez définir une variable de dictionnaire appelée permissions
.
Les éléments de la liste permissions
peuvent contenir les paramètres suivants :
Nom | Valeur par défaut | Description |
---|---|---|
state | present | Spécifie si l'état de la permission est présent ou absent . |
user_name | UNDEF | L'utilisateur pour lequel gérer la permission. |
group_name | UNDEF | Nom du groupe pour lequel gérer la permission. |
authz_name | UNDEF | Nom du fournisseur d'autorisation du groupe ou de l'utilisateur. |
role | UNDEF | Le rôle à attribuer à l'utilisateur ou au groupe. |
object_type | UNDEF | Le type d'objet qui doit être utilisé pour attribuer la permission. Les types d'objet possibles sont :
|
object_name | UNDEF | Nom de l'objet où la permission doit être attribuée. |
Fournisseurs externes
Pour configurer des fournisseurs externes, vous pouvez définir une variable de dictionnaire appelée external_providers
.
Les éléments de la liste external_providers
peuvent contenir les paramètres suivants :
Nom | Valeur par défaut | Description |
---|---|---|
name | UNDEF (Obligatoire) | Nom du fournisseur externe. |
state | present | État du fournisseur externe. Les valeurs peuvent être :
|
type | UNDEF (Obligatoire) | Type du fournisseur externe. Les valeurs peuvent être :
|
url | UNDEF | URL où le fournisseur externe est hébergé. Obligatoire si l'état est présent. |
username | UNDEF | Nom d'utilisateur utilisé pour se connecter au fournisseur externe. Applicable à tous les types. |
password | UNDEF | Mot de passe de l'utilisateur spécifié dans le paramètre username. Applicable à tous les types. |
tenant | UNDEF | Nom du locataire. |
auth_url | UNDEF | URL d'authentification Keystone du fournisseur OpenStack. Obligatoire pour :
|
data_center | UNDEF | Nom du centre de données où le fournisseur doit être attaché. Applicable pour le type os_volume. |
authentication_keys | UNDEF | Liste des clés d'authentification. Chaque clé est représentée par un dict tel que {'uuid': 'mon-uuid', 'value': 'valeur secrète'}. Ajouté dans ansible 2.6. Applicable pour le type os_volume. |
Plus d'informations sur les paramètres peuvent être trouvées dans la documentation du module ovirt_external_provider.
Exemple de Playbook
---
- name: Infra 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: Connexion à oVirt
ovirt_auth:
hostname: "{{ engine_fqdn }}"
username: "{{ engine_user }}"
password: "{{ engine_password }}"
ca_file: "{{ engine_cafile | default(omit) }}"
insecure: "{{ engine_insecure | default(true) }}"
tags:
- always
roles:
- ovirt.infra
post_tasks:
- name: Déconnexion d'oVirt
ovirt_auth:
state: absent
ovirt_auth: "{{ ovirt_auth }}"
tags:
- always
Licence
Licence Apache 2.0
ansible-galaxy install ovirt.infra