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
  • disabled - Désactive le partage des pages de mémoire.
  • server - Définit le seuil de partage des pages de mémoire à 150 % de la mémoire système sur chaque hôte.
  • desktop - Définit le seuil de partage des pages de mémoire à 200 % de la mémoire système sur chaque hôte.
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 :
  • legacy - Comportement hérité de la version 3.6.
  • minimal_downtime - Les machines virtuelles ne doivent pas subir d'interruption significative.
  • suspend_workload - Les machines virtuelles peuvent subir une interruption plus significative.
  • post_copy - Les machines virtuelles ne devraient pas connaître d'interruption significative. Si la migration de la VM ne converge pas pendant longtemps, la migration sera changée en post-copy.
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 :
  • auto - La bande passante est copiée à partir du réglage de la limite des débits [Mbps] dans le réseau QoS de l'hôte du centre de données.
  • hypervisor_default - La bande passante est contrôlée par le paramètre local de VDSM sur l'hôte d'envoi.
  • custom - Défini par l'utilisateur (en Mbps).
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 :
  • do_not_migrate - Empêche les machines virtuelles d'être migrées.
  • migrate - Migre toutes les machines virtuelles selon leur priorité définie.
  • migrate_highly_available - Migre uniquement les machines virtuelles hautement disponibles pour éviter de surcharger d'autres hôtes.
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 :
  • vm - Définit l'UUID de la machine virtuelle comme son numéro de série.
  • host - Définit l'UUID de l'hôte comme le numéro de série de la machine virtuelle.
  • custom - Permet de spécifier un numéro de série personnalisé dans serial_policy_value.
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 :
  • iso
  • export
  • data
.
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 :
  • department
  • description
  • displayName
  • email
  • firstName
  • lasName
  • title
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 :
  • data_center
  • cluster
  • host
  • storage_domain
  • network
  • disk
  • vm
  • vm_pool
  • template
  • cpu_profile
  • disk_profile
  • vnic_profile
  • system
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 :
  • present
  • absent
type UNDEF (Obligatoire) Type du fournisseur externe. Les valeurs peuvent être :
  • os_image
  • network
  • os_volume
  • foreman
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 :
  • os_image
  • network
  • os_volume
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

asciicast

Licence

Licence Apache 2.0

À propos du projet

Role to manage oVirt infrastructure.

Installer
ansible-galaxy install ovirt.infra
Licence
apache-2.0
Téléchargements
153.3k
Propriétaire
Open Virtual Datacenter