Rechercher

Chapitre 24. Configuration d'un cluster à haute disponibilité à l'aide du rôle de système RHEL ha_cluster

download PDF

Avec le rôle de système ha_cluster, vous pouvez configurer et gérer un cluster de haute disponibilité qui utilise le gestionnaire de ressources de cluster de haute disponibilité Pacemaker.

24.1. ha_cluster Variables de rôle du système

Dans un playbook ha_cluster System Role, vous définissez les variables d'un cluster de haute disponibilité en fonction des exigences de votre déploiement de cluster.

Les variables que vous pouvez définir pour un rôle de système ha_cluster sont les suivantes.

ha_cluster_enable_repos
Indicateur booléen qui active les référentiels contenant les paquets nécessaires au rôle de système ha_cluster. Lorsque cette variable a la valeur true(valeur par défaut), vous devez disposer d'une couverture d'abonnement active pour RHEL et le module complémentaire de haute disponibilité RHEL sur les systèmes que vous utiliserez en tant que membres de votre cluster, faute de quoi le rôle de système échouera.
ha_cluster_manage_firewall

(RHEL 9.2 et versions ultérieures) Indicateur booléen qui détermine si le rôle système ha_cluster gère le pare-feu. Lorsque ha_cluster_manage_firewall vaut true, le service de haute disponibilité du pare-feu et le port fence-virt sont activés. Lorsque ha_cluster_manage_firewall a pour valeur false, le rôle système ha_cluster ne gère pas le pare-feu. Si votre système exécute le service firewalld, vous devez définir le paramètre sur true dans votre playbook.

Vous pouvez utiliser le paramètre ha_cluster_manage_firewall pour ajouter des ports, mais vous ne pouvez pas l'utiliser pour en supprimer. Pour supprimer des ports, utilisez directement le rôle de système firewall.

Depuis RHEL 9.2, le pare-feu n'est plus configuré par défaut, car il n'est configuré que lorsque ha_cluster_manage_firewall est défini sur true.

ha_cluster_manage_selinux

(RHEL 9.2 et versions ultérieures) Indicateur booléen qui détermine si le rôle système ha_cluster gère les ports appartenant au service de haute disponibilité du pare-feu à l'aide du rôle système selinux. Lorsque ha_cluster_manage_selinux a la valeur true, les ports appartenant au service de haute disponibilité du pare-feu sont associés au type de port SELinux cluster_port_t. Lorsque ha_cluster_manage_selinux est défini sur false, le rôle système ha_cluster ne gère pas SELinux.

Si votre système exécute le service selinux, vous devez définir ce paramètre sur true dans votre playbook. La configuration du pare-feu est une condition préalable à la gestion de SELinux. Si le pare-feu n'est pas installé, la politique de gestion de SELinux est ignorée.

Vous pouvez utiliser le paramètre ha_cluster_manage_selinux pour ajouter une stratégie, mais vous ne pouvez pas l'utiliser pour la supprimer. Pour supprimer une stratégie, utilisez directement le rôle de système selinux.

ha_cluster_cluster_present

Un drapeau booléen qui, s'il vaut true, détermine que le cluster HA sera configuré sur les hôtes selon les variables passées au rôle. Toute configuration de cluster non spécifiée dans le rôle et non supportée par le rôle sera perdue.

Si ha_cluster_cluster_present est défini sur false, toute la configuration du cluster HA sera supprimée des hôtes cibles.

La valeur par défaut de cette variable est true.

L'exemple suivant supprime toute la configuration du cluster sur node1 et node2

- hosts: node1 node2
  vars:
    ha_cluster_cluster_present: false

  roles:
    - rhel-system-roles.ha_cluster
ha_cluster_start_on_boot
Indicateur booléen qui détermine si les services de cluster seront configurés pour démarrer au démarrage. La valeur par défaut de cette variable est true.
ha_cluster_fence_agent_packages
Liste des paquets d'agents de clôture à installer. La valeur par défaut de cette variable est fence-agents-all, fence-virt.
ha_cluster_extra_packages

Liste des paquets supplémentaires à installer. La valeur par défaut de cette variable est aucun paquet.

Cette variable peut être utilisée pour installer des paquets supplémentaires qui ne sont pas installés automatiquement par le rôle, par exemple des agents de ressources personnalisés.

Il est possible de spécifier des agents de clôture comme membres de cette liste. Toutefois, ha_cluster_fence_agent_packages est la variable de rôle qu'il est recommandé d'utiliser pour spécifier les agents de clôture, de sorte que sa valeur par défaut est remplacée.

ha_cluster_hacluster_password
Chaîne de caractères spécifiant le mot de passe de l'utilisateur hacluster. L'utilisateur hacluster a un accès complet à un cluster. Il est recommandé de crypter le mot de passe, comme décrit dans Cryptage du contenu avec Ansible Vault. Il n'y a pas de valeur de mot de passe par défaut, et cette variable doit être spécifiée.
ha_cluster_corosync_key_src

Le chemin d'accès au fichier Corosync authkey, qui est la clé d'authentification et de cryptage pour la communication Corosync. Il est fortement recommandé d'avoir une valeur authkey unique pour chaque cluster. La clé doit être composée de 256 octets de données aléatoires.

Si vous spécifiez une clé pour cette variable, il est recommandé de chiffrer la clé dans la chambre forte, comme décrit dans Chiffrer le contenu avec Ansible Vault.

Si aucune clé n'est spécifiée, une clé déjà présente sur les nœuds sera utilisée. Si les nœuds n'ont pas la même clé, une clé d'un nœud sera distribuée aux autres nœuds afin que tous les nœuds aient la même clé. Si aucun nœud ne possède de clé, une nouvelle clé sera générée et distribuée aux nœuds.

Si cette variable est définie, ha_cluster_regenerate_keys est ignoré pour cette touche.

La valeur par défaut de cette variable est null.

ha_cluster_pacemaker_key_src

Le chemin d'accès au fichier Pacemaker authkey, qui est la clé d'authentification et de cryptage pour la communication Pacemaker. Il est fortement recommandé d'avoir une valeur authkey unique pour chaque cluster. La clé doit être constituée de 256 octets de données aléatoires.

Si vous spécifiez une clé pour cette variable, il est recommandé de chiffrer la clé dans la chambre forte, comme décrit dans Chiffrer le contenu avec Ansible Vault.

Si aucune clé n'est spécifiée, une clé déjà présente sur les nœuds sera utilisée. Si les nœuds n'ont pas la même clé, une clé d'un nœud sera distribuée aux autres nœuds afin que tous les nœuds aient la même clé. Si aucun nœud ne possède de clé, une nouvelle clé sera générée et distribuée aux nœuds.

Si cette variable est définie, ha_cluster_regenerate_keys est ignoré pour cette touche.

La valeur par défaut de cette variable est null.

ha_cluster_fence_virt_key_src

Chemin d'accès au fichier de clé prépartagée fence-virt ou fence-xvm, qui est l'emplacement de la clé d'authentification pour l'agent de clôture fence-virt ou fence-xvm.

Si vous spécifiez une clé pour cette variable, il est recommandé de chiffrer la clé dans la chambre forte, comme décrit dans Chiffrer le contenu avec Ansible Vault.

Si aucune clé n'est spécifiée, une clé déjà présente sur les nœuds sera utilisée. Si les nœuds n'ont pas la même clé, une clé d'un nœud sera distribuée aux autres nœuds afin que tous les nœuds aient la même clé. Si aucun nœud ne possède de clé, une nouvelle clé est générée et distribuée aux nœuds. Si le rôle de système ha_cluster génère une nouvelle clé de cette manière, vous devez copier la clé dans l'hyperviseur de vos nœuds afin de garantir le bon fonctionnement de la clôture.

Si cette variable est définie, ha_cluster_regenerate_keys est ignoré pour cette touche.

La valeur par défaut de cette variable est null.

ha_cluster_pcsd_public_key_srcr, ha_cluster_pcsd_private_key_src

Le chemin d'accès au certificat TLS et à la clé privée de pcsd. Si ce chemin n'est pas spécifié, une paire certificat-clé déjà présente sur les nœuds sera utilisée. Si ce n'est pas le cas, une nouvelle paire de clés sera générée de manière aléatoire.

Si vous spécifiez une valeur de clé privée pour cette variable, il est recommandé de chiffrer la clé dans la chambre forte, comme décrit dans Chiffrer le contenu avec Ansible Vault.

Si ces variables sont définies, ha_cluster_regenerate_keys est ignoré pour cette paire certificat-clé.

La valeur par défaut de ces variables est null.

ha_cluster_pcsd_certificates

(RHEL 9.2 et versions ultérieures) Crée une clé privée et un certificat pcsd à l'aide du rôle système certificate.

Si votre système n'est pas configuré avec une clé privée et un certificat pcsd, vous pouvez les créer de deux manières :

  • Définissez la variable ha_cluster_pcsd_certificates. Lorsque vous définissez la variable ha_cluster_pcsd_certificates, le rôle système certificate est utilisé en interne et crée la clé privée et le certificat pour pcsd comme défini.
  • Ne définissez pas les variables ha_cluster_pcsd_public_key_src, ha_cluster_pcsd_private_key_src ou ha_cluster_pcsd_certificates. Si vous ne définissez aucune de ces variables, le rôle de système ha_cluster créera des certificats pcsd au moyen de pcsd lui-même. La valeur de ha_cluster_pcsd_certificates est fixée à la valeur de la variable certificate_requests telle qu'elle est spécifiée dans le rôle système certificate. Pour plus d'informations sur le rôle système certificate, voir Demande de certificats à l'aide des rôles système RHEL.

Les considérations opérationnelles suivantes s'appliquent à l'utilisation de la variable ha_cluster_pcsd_certificate:

  • À moins que vous n'utilisiez IPA et que vous ne joigniez les systèmes à un domaine IPA, le rôle système certificate crée des certificats auto-signés. Dans ce cas, vous devez configurer explicitement les paramètres de confiance en dehors du contexte des rôles système RHEL. Les rôles système ne prennent pas en charge la configuration des paramètres de confiance.
  • Lorsque vous définissez la variable ha_cluster_pcsd_certificates, ne définissez pas les variables ha_cluster_pcsd_public_key_src et ha_cluster_pcsd_private_key_src.
  • Lorsque vous définissez la variable ha_cluster_pcsd_certificates, ha_cluster_regenerate_keys est ignoré pour cette paire certificat-clé.

La valeur par défaut de cette variable est [].

Pour un exemple de playbook ha_cluster System Role qui crée des certificats TLS et des fichiers clés dans un cluster à haute disponibilité, voir Création de certificats TLS pcsd et de fichiers clés pour un cluster à haute disponibilité.

ha_cluster_regenerate_keys
Indicateur booléen qui, lorsqu'il vaut true, détermine que les clés pré-partagées et les certificats TLS seront régénérés. Pour plus d'informations sur le moment où les clés et les certificats seront régénérés, voir les descriptions des variables ha_cluster_corosync_key_src, ha_cluster_pacemaker_key_src, ha_cluster_fence_virt_key_src, ha_cluster_pcsd_public_key_src, et ha_cluster_pcsd_private_key_src.
La valeur par défaut de cette variable est false.
ha_cluster_pcs_permission_list

Configure les permissions pour gérer un cluster en utilisant pcsd. Les éléments que vous configurez avec cette variable sont les suivants :

  • type - user ou group
  • name - nom de l'utilisateur ou du groupe
  • allow_list - Actions autorisées pour l'utilisateur ou le groupe spécifié :

    • read - Visualiser l'état et les paramètres du cluster
    • write - Modifier les paramètres du cluster, à l'exception des autorisations et des ACL
    • grant - Modifier les permissions et les ACL des clusters
    • full - Accès illimité à une grappe, y compris l'ajout et la suppression de nœuds et l'accès aux clés et aux certificats

La structure de la variable ha_cluster_pcs_permission_list et ses valeurs par défaut sont les suivantes :

ha_cluster_pcs_permission_list:
  - type: group
    name: hacluster
    allow_list:
      - grant
      - read
      - write
ha_cluster_cluster_name
Le nom du cluster. Il s'agit d'une chaîne de caractères dont la valeur par défaut est my-cluster.
ha_cluster_transport

(RHEL 9.1 et ultérieur) Définit la méthode de transport du cluster. Les éléments que vous configurez avec cette variable sont les suivants :

  • type (facultatif) - Type de transport : knet udp udpu les types de transport udp et udpu ne supportent qu'un seul lien. Le cryptage est toujours désactivé pour udp et udpu. La valeur par défaut est knet si elle n'est pas spécifiée.
  • options (facultatif) - Liste de dictionnaires nom-valeur contenant des options de transport.
  • links (facultatif) - Liste de dictionnaires nom-valeur. Chaque liste de dictionnaires nom-valeur contient des options pour un lien Corosync. Il est recommandé de définir la valeur linknumber pour chaque lien. Sinon, la première liste de dictionnaires est attribuée par défaut au premier lien, la deuxième au deuxième lien, et ainsi de suite.
  • compression (facultatif) - Liste de dictionnaires nom-valeur configurant la compression du transport. Pris en charge uniquement avec le type de transport knet.
  • crypto (facultatif) - Liste de dictionnaires nom-valeur configurant le cryptage du transport. Par défaut, le cryptage est activé. Pris en charge uniquement avec le type de transport knet.

    Pour une liste des options autorisées, voir la page d'aide pcs -h cluster setup ou la description setup dans la section cluster de la page de manuel pcs(8). Pour des descriptions plus détaillées, voir la page de manuel corosync.conf(5).

    La structure de la variable ha_cluster_transport est la suivante :

    ha_cluster_transport:
      type: knet
      options:
        - name: option1_name
          value: option1_value
        - name: option2_name
          value: option2_value
      links:
        -
          - name: option1_name
            value: option1_value
          - name: option2_name
            value: option2_value
        -
          - name: option1_name
            value: option1_value
          - name: option2_name
            value: option2_value
      compression:
        - name: option1_name
          value: option1_value
        - name: option2_name
          value: option2_value
      crypto:
        - name: option1_name
          value: option1_value
        - name: option2_name
          value: option2_value

    Pour un exemple de playbook ha_cluster System Role qui configure une méthode de transport, voir Configuration des valeurs Corosync dans un cluster à haute disponibilité.

ha_cluster_totem

(RHEL 9.1 et ultérieur) Configure le totem Corosync. Pour une liste des options autorisées, voir la page d'aide pcs -h cluster setup ou la description setup dans la section cluster de la page de manuel pcs(8). Pour une description plus détaillée, voir la page de manuel corosync.conf(5).

La structure de la variable ha_cluster_totem est la suivante :

ha_cluster_totem:
  options:
    - name: option1_name
      value: option1_value
    - name: option2_name
      value: option2_value

Pour un exemple de playbook ha_cluster System Role qui configure un totem Corosync, voir Configuration des valeurs Corosync dans un cluster à haute disponibilité.

ha_cluster_quorum

(RHEL 9.1 et versions ultérieures) Configure le quorum du cluster. Vous pouvez configurer les éléments suivants pour le quorum de cluster :

  • options (facultatif) - Liste de dictionnaires nom-valeur configurant le quorum. Les options autorisées sont : auto_tie_breaker, last_man_standing, last_man_standing_window, et wait_for_all. Pour plus d'informations sur les options de quorum, consultez la page de manuel votequorum(5).
  • device (facultatif) - (RHEL 9.2 et versions ultérieures) Configure le cluster pour qu'il utilise un périphérique quorum. Par défaut, aucun périphérique quorum n'est utilisé.

    • model (obligatoire) - Spécifie un modèle de périphérique quorum. Seul net est pris en charge
    • model_options (facultatif) - Liste de dictionnaires nom-valeur configurant le modèle de périphérique quorum spécifié. Pour le modèle net, vous devez spécifier les options host et algorithm.

      Utilisez l'option pcs-address pour définir une adresse et un port pcsd personnalisés afin de vous connecter à l'hôte qnetd. Si vous ne spécifiez pas cette option, le rôle se connecte au port par défaut pcsd sur l'hôte host.

    • generic_options (facultatif) - Liste de dictionnaires nom-valeur définissant les options du périphérique quorum qui ne sont pas spécifiques à un modèle.
    • heuristics_options (facultatif) - Liste de dictionnaires nom-valeur configurant l'heuristique des périphériques quorum.

      Pour plus d'informations sur les options des périphériques quorum, voir la page de manuel corosync-qdevice(8). Les options génériques sont sync_timeout et timeout. Pour les options du modèle net, voir la section quorum.device.net. Pour les options heuristiques, voir la section quorum.device.heuristics.

      Pour régénérer le certificat TLS d'un périphérique quorum, définissez la variable ha_cluster_regenerate_keys à true.

La structure de la variable ha_cluster_quorum est la suivante :

ha_cluster_quorum:
  options:
    - name: option1_name
      value: option1_value
    - name: option2_name
      value: option2_value
  device:
    model: string
    model_options:
      - name: option1_name
        value: option1_value
      - name: option2_name
        value: option2_value
    generic_options:
      - name: option1_name
        value: option1_value
      - name: option2_name
        value: option2_value
    heuristics_options:
      - name: option1_name
        value: option1_value
      - name: option2_name
        value: option2_value

Pour un exemple ha_cluster System Role playbook qui configure le quorum du cluster, voir Configuration des valeurs Corosync dans un cluster à haute disponibilité. Pour un exemple de manuel de rôle système ha_cluster qui configure un cluster à l'aide d'un dispositif de quorum, voir Configuration d'un cluster haute disponibilité à l'aide d'un dispositif de quorum.

ha_cluster_sbd_enabled

(RHEL 9.1 et versions ultérieures) Indicateur booléen qui détermine si le cluster peut utiliser le mécanisme de clôture des nœuds SBD. La valeur par défaut de cette variable est false.

Pour un exemple de playbook de rôle de système ha_cluster qui active le SBD, voir Configuration d'un cluster à haute disponibilité avec des clôtures de nœuds SBD.

ha_cluster_sbd_options

(RHEL 9.1 et versions ultérieures) Liste de dictionnaires nom-valeur spécifiant les options SBD. Les options prises en charge sont les suivantes :

  • delay-start - la valeur par défaut est no
  • startmode - la valeur par défaut est always
  • timeout-action - la valeur par défaut est flush,reboot
  • watchdog-timeout - la valeur par défaut est 5

    Pour plus d'informations sur ces options, voir la section Configuration via environment de la page de manuel sbd(8).

Pour un exemple de playbook ha_cluster System Role qui configure les options SBD, voir Configuration d'un cluster à haute disponibilité avec des clôtures de nœuds SBD.

Lorsque vous utilisez le SBD, vous pouvez éventuellement configurer des dispositifs de chien de garde et de SBD pour chaque nœud d'un inventaire. Pour plus d'informations sur la configuration des dispositifs de surveillance et de SBD dans un fichier d'inventaire, voir Spécification d'un inventaire pour le rôle de système ha_cluster.

ha_cluster_cluster_properties

Liste des ensembles de propriétés de cluster pour la configuration de Pacemaker à l'échelle du cluster. Un seul ensemble de propriétés de cluster est pris en charge.

La structure d'un ensemble de propriétés de grappes est la suivante :

ha_cluster_cluster_properties:
  - attrs:
      - name: property1_name
        value: property1_value
      - name: property2_name
        value: property2_value

Par défaut, aucune propriété n'est définie.

L'exemple suivant configure un cluster composé de node1 et node2 et définit les propriétés des clusters stonith-enabled et no-quorum-policy.

- hosts: node1 node2
  vars:
    ha_cluster_cluster_name: my-new-cluster
    ha_cluster_hacluster_password: password
    ha_cluster_cluster_properties:
      - attrs:
          - name: stonith-enabled
            value: 'true'
          - name: no-quorum-policy
            value: stop

  roles:
    - rhel-system-roles.ha_cluster
ha_cluster_resource_primitives

Cette variable définit les ressources du pacemaker configurées par le rôle système, y compris les ressources stonith, y compris les ressources stonith. Vous pouvez configurer les éléments suivants pour chaque ressource :

  • id (obligatoire) - ID d'une ressource.
  • agent (obligatoire) - Nom d'une ressource ou d'un agent stonith, par exemple ocf:pacemaker:Dummy ou stonith:fence_xvm. Il est obligatoire de spécifier stonith: pour les agents stonith. Pour les agents de ressource, il est possible d'utiliser un nom court, par exemple Dummy, au lieu de ocf:pacemaker:Dummy. Toutefois, si plusieurs agents portant le même nom court sont installés, le rôle échouera car il sera incapable de décider quel agent doit être utilisé. Il est donc recommandé d'utiliser des noms complets lors de la spécification d'un agent de ressource.
  • instance_attrs (facultatif) - Liste d'ensembles d'attributs d'instance de la ressource. Actuellement, un seul ensemble est pris en charge. Les noms et valeurs exacts des attributs, ainsi que leur caractère obligatoire ou non, dépendent de la ressource ou de l'agent stonith.
  • meta_attrs (facultatif) - Liste d'ensembles d'attributs méta de la ressource. Actuellement, un seul ensemble est pris en charge.
  • operations (facultatif) - Liste des opérations de la ressource.

    • action (obligatoire) - Action d'opération telle que définie par le pacemaker et l'agent ressource ou stonith.
    • attrs (obligatoire) - Options d'opération, au moins une option doit être spécifiée.

La structure de la définition des ressources que vous configurez avec le rôle de système ha_cluster est la suivante.

  - id: resource-id
    agent: resource-agent
    instance_attrs:
      - attrs:
          - name: attribute1_name
            value: attribute1_value
          - name: attribute2_name
            value: attribute2_value
    meta_attrs:
      - attrs:
          - name: meta_attribute1_name
            value: meta_attribute1_value
          - name: meta_attribute2_name
            value: meta_attribute2_value
    operations:
      - action: operation1-action
        attrs:
          - name: operation1_attribute1_name
            value: operation1_attribute1_value
          - name: operation1_attribute2_name
            value: operation1_attribute2_value
      - action: operation2-action
        attrs:
          - name: operation2_attribute1_name
            value: operation2_attribute1_value
          - name: operation2_attribute2_name
            value: operation2_attribute2_value

Par défaut, aucune ressource n'est définie.

Pour un exemple de playbook ha_cluster System Role qui inclut la configuration des ressources, voir Configuration d'un cluster à haute disponibilité avec des clôtures et des ressources.

ha_cluster_resource_groups

Cette variable définit les groupes de ressources de pacemaker configurés par le rôle de système. Vous pouvez configurer les éléments suivants pour chaque groupe de ressources :

  • id (obligatoire) - ID d'un groupe.
  • resources (obligatoire) - Liste des ressources du groupe. Chaque ressource est référencée par son ID et les ressources doivent être définies dans la variable ha_cluster_resource_primitives. Au moins une ressource doit être listée.
  • meta_attrs (facultatif) - Liste d'ensembles d'attributs méta du groupe. Actuellement, un seul ensemble est pris en charge.

La structure de la définition du groupe de ressources que vous configurez avec le rôle de système ha_cluster est la suivante.

ha_cluster_resource_groups:
  - id: group-id
    resource_ids:
      - resource1-id
      - resource2-id
    meta_attrs:
      - attrs:
          - name: group_meta_attribute1_name
            value: group_meta_attribute1_value
          - name: group_meta_attribute2_name
            value: group_meta_attribute2_value

Par défaut, aucun groupe de ressources n'est défini.

Pour un exemple de playbook ha_cluster System Role qui inclut la configuration des groupes de ressources, voir Configuration d'un cluster à haute disponibilité avec des clôtures et des ressources.

ha_cluster_resource_clones

Cette variable définit les clones de ressources de pacemaker configurés par le rôle de système. Vous pouvez configurer les éléments suivants pour un clone de ressources :

  • resource_id (obligatoire) - Ressource à cloner. La ressource doit être définie dans la variable ha_cluster_resource_primitives ou ha_cluster_resource_groups.
  • promotable (facultatif) - Indique si le clone de ressource à créer est un clone promouvable, indiqué par true ou false.
  • id (facultatif) - ID personnalisé du clone. Si aucun identifiant n'est spécifié, il sera généré. Un avertissement s'affiche si cette option n'est pas prise en charge par le cluster.
  • meta_attrs (facultatif) - Liste d'ensembles d'attributs méta du clone. Actuellement, un seul ensemble est pris en charge.

La structure de la définition du clone de ressources que vous configurez avec le rôle de système ha_cluster est la suivante.

ha_cluster_resource_clones:
  - resource_id: resource-to-be-cloned
    promotable: true
    id: custom-clone-id
    meta_attrs:
      - attrs:
          - name: clone_meta_attribute1_name
            value: clone_meta_attribute1_value
          - name: clone_meta_attribute2_name
            value: clone_meta_attribute2_value

Par défaut, aucun clone de ressources n'est défini.

Pour un exemple de playbook ha_cluster System Role qui inclut la configuration des clones de ressources, voir Configuration d'un cluster à haute disponibilité avec des clôtures et des ressources.

ha_cluster_constraints_location

Cette variable définit les contraintes de localisation des ressources. Les contraintes d'emplacement des ressources indiquent les nœuds sur lesquels une ressource peut s'exécuter. Vous pouvez spécifier une ressource par un identifiant de ressource ou par un modèle, qui peut correspondre à plusieurs ressources. Vous pouvez spécifier un nœud par un nom de nœud ou par une règle.

Vous pouvez configurer les éléments suivants pour une contrainte de localisation des ressources :

  • resource (obligatoire) - Spécification d'une ressource à laquelle la contrainte s'applique.
  • node (obligatoire) - Nom d'un nœud que la ressource doit préférer ou éviter.
  • id (facultatif) - ID de la contrainte. S'il n'est pas spécifié, il sera généré automatiquement.
  • options (facultatif) - Liste de dictionnaires nom-valeur.

    • score - Définit le poids de la contrainte.

      • Une valeur positive de score signifie que la ressource préfère s'exécuter sur le nœud.
      • Une valeur négative de score signifie que la ressource ne doit pas être exécutée sur le nœud.
      • Une valeur de score à -INFINITY signifie que la ressource ne doit pas être exécutée sur le nœud.
      • Si score n'est pas spécifié, la valeur du score est par défaut INFINITY.

Par défaut, aucune contrainte de localisation des ressources n'est définie.

La structure d'une contrainte de localisation de ressource spécifiant un identifiant de ressource et un nom de nœud est la suivante :

ha_cluster_constraints_location:
  - resource:
      id: resource-id
    node: node-name
    id: constraint-id
    options:
      - name: score
        value: score-value
      - name: option-name
        value: option-value

Les éléments que vous configurez pour une contrainte d'emplacement de ressource qui spécifie un modèle de ressource sont les mêmes que ceux que vous configurez pour une contrainte d'emplacement de ressource qui spécifie un identifiant de ressource, à l'exception de la spécification de ressource elle-même. L'élément que vous spécifiez pour la spécification de ressource est le suivant :

  • pattern (obligatoire) - Expression régulière POSIX étendue permettant de comparer les identifiants de ressources.

La structure d'une contrainte d'emplacement de ressource spécifiant un modèle de ressource et un nom de nœud est la suivante :

ha_cluster_constraints_location:
  - resource:
      pattern: resource-pattern
    node: node-name
    id: constraint-id
    options:
      - name: score
        value: score-value
      - name: resource-discovery
        value: resource-discovery-value

Vous pouvez configurer les éléments suivants pour une contrainte d'emplacement de ressource qui spécifie un identifiant de ressource et une règle :

  • resource (obligatoire) - Spécification d'une ressource à laquelle la contrainte s'applique.

    • id (obligatoire) - ID de la ressource.
    • role (facultatif) - Le rôle de la ressource auquel la contrainte est limitée : Started, Unpromoted, Promoted.
  • rule (obligatoire) - Règle de contrainte écrite en utilisant la syntaxe pcs. Pour plus d'informations, voir la section constraint location de la page de manuel pcs(8).
  • Les autres éléments à spécifier ont la même signification que pour une contrainte de ressource qui ne spécifie pas de règle.

La structure d'une contrainte de localisation des ressources qui spécifie un identifiant de ressource et une règle est la suivante :

ha_cluster_constraints_location:
  - resource:
      id: resource-id
      role: resource-role
    rule: rule-string
    id: constraint-id
    options:
      - name: score
        value: score-value
      - name: resource-discovery
        value: resource-discovery-value

Les éléments que vous configurez pour une contrainte d'emplacement de ressource qui spécifie un modèle de ressource et une règle sont les mêmes que ceux que vous configurez pour une contrainte d'emplacement de ressource qui spécifie un identifiant de ressource et une règle, à l'exception de la spécification de ressource elle-même. L'élément que vous spécifiez pour la spécification de ressource est le suivant :

  • pattern (obligatoire) - Expression régulière POSIX étendue permettant de comparer les identifiants de ressources.

La structure d'une contrainte de localisation des ressources qui spécifie un modèle de ressource et une règle est la suivante :

ha_cluster_constraints_location:
  - resource:
      pattern: resource-pattern
      role: resource-role
    rule: rule-string
    id: constraint-id
    options:
      - name: score
        value: score-value
      - name: resource-discovery
        value: resource-discovery-value

Pour un exemple de playbook de rôle système ha_cluster qui crée un cluster avec des contraintes de ressources, voir Configuration d'un cluster de haute disponibilité avec des contraintes de ressources.

ha_cluster_constraints_colocation

Cette variable définit les contraintes de colocalisation des ressources. Les contraintes de colocalisation des ressources indiquent que l'emplacement d'une ressource dépend de l'emplacement d'une autre ressource. Il existe deux types de contraintes de colocalisation : une contrainte de colocalisation simple pour deux ressources et une contrainte de colocalisation définie pour plusieurs ressources.

Vous pouvez configurer les éléments suivants pour une contrainte simple de colocation des ressources :

  • resource_follower (obligatoire) - Une ressource qui doit être située par rapport à resource_leader.

    • id (obligatoire) - ID de la ressource.
    • role (facultatif) - Le rôle de la ressource auquel la contrainte est limitée : Started, Unpromoted, Promoted.
  • resource_leader (obligatoire) - Le cluster décidera d'abord où placer cette ressource et ensuite où placer resource_follower.

    • id (obligatoire) - ID de la ressource.
    • role (facultatif) - Le rôle de la ressource auquel la contrainte est limitée : Started, Unpromoted, Promoted.
  • id (facultatif) - ID de la contrainte. S'il n'est pas spécifié, il sera généré automatiquement.
  • options (facultatif) - Liste de dictionnaires nom-valeur.

    • score - Définit le poids de la contrainte.

      • Les valeurs positives de score indiquent que les ressources doivent être exécutées sur le même nœud.
      • Les valeurs négatives de score indiquent que les ressources doivent être exécutées sur des nœuds différents.
      • Une valeur de score à INFINITY indique que les ressources doivent être exécutées sur le même nœud.
      • Une valeur score de -INFINITY indique que les ressources doivent être exécutées sur des nœuds différents.
      • Si score n'est pas spécifié, la valeur du score est par défaut INFINITY.

Par défaut, aucune contrainte de colocation des ressources n'est définie.

La structure d'une contrainte simple de colocation des ressources est la suivante :

ha_cluster_constraints_colocation:
  - resource_follower:
      id: resource-id1
      role: resource-role1
    resource_leader:
      id: resource-id2
      role: resource-role2
    id: constraint-id
    options:
      - name: score
        value: score-value
      - name: option-name
        value: option-value

Vous pouvez configurer les éléments suivants pour une contrainte de colocalisation d'un ensemble de ressources :

  • resource_sets (obligatoire) - Liste des ensembles de ressources.

    • resource_ids (obligatoire) - Liste des ressources d'un ensemble.
    • options (facultatif) - Liste de dictionnaires nom-valeur affinant la manière dont les ressources des ensembles sont traitées par la contrainte.
  • id (facultatif) - Mêmes valeurs que pour une contrainte de colocalisation simple.
  • options (facultatif) - Mêmes valeurs que pour une contrainte de colocalisation simple.

La structure d'une contrainte de colocalisation d'un ensemble de ressources est la suivante :

ha_cluster_constraints_colocation:
  - resource_sets:
      - resource_ids:
          - resource-id1
          - resource-id2
        options:
          - name: option-name
            value: option-value
    id: constraint-id
    options:
      - name: score
        value: score-value
      - name: option-name
        value: option-value

Pour un exemple de playbook de rôle système ha_cluster qui crée un cluster avec des contraintes de ressources, voir Configuration d'un cluster de haute disponibilité avec des contraintes de ressources.

ha_cluster_constraints_order

Cette variable définit les contraintes d'ordre des ressources. Les contraintes d'ordre des ressources indiquent l'ordre dans lequel certaines actions des ressources doivent se produire. Il existe deux types de contraintes d'ordre pour les ressources : une contrainte d'ordre simple pour deux ressources et une contrainte d'ordre défini pour plusieurs ressources.

Vous pouvez configurer les éléments suivants pour une contrainte d'ordre de ressources simple :

  • resource_first (obligatoire) - Ressource dont dépend la ressource resource_then.

    • id (obligatoire) - ID de la ressource.
    • action (facultatif) - L'action qui doit être terminée avant qu'une action puisse être lancée pour la ressource resource_then. Valeurs autorisées : start, stop, promote, demote.
  • resource_then (obligatoire) - La ressource dépendante.

    • id (obligatoire) - ID de la ressource.
    • action (facultatif) - Action que la ressource ne peut exécuter qu'une fois l'action sur la ressource resource_first terminée. Valeurs autorisées : start, stop, promote, demote.
  • id (facultatif) - ID de la contrainte. S'il n'est pas spécifié, il sera généré automatiquement.
  • options (facultatif) - Liste de dictionnaires nom-valeur.

Par défaut, aucune contrainte d'ordre de ressources n'est définie.

La structure d'une simple contrainte d'ordre de ressources est la suivante :

ha_cluster_constraints_order:
  - resource_first:
      id: resource-id1
      action: resource-action1
    resource_then:
      id: resource-id2
      action: resource-action2
    id: constraint-id
    options:
      - name: score
        value: score-value
      - name: option-name
        value: option-value

Vous pouvez configurer les éléments suivants pour une contrainte de commande d'ensemble de ressources :

  • resource_sets (obligatoire) - Liste des ensembles de ressources.

    • resource_ids (obligatoire) - Liste des ressources d'un ensemble.
    • options (facultatif) - Liste de dictionnaires nom-valeur affinant la manière dont les ressources des ensembles sont traitées par la contrainte.
  • id (facultatif) - Mêmes valeurs que pour une contrainte d'ordre simple.
  • options (facultatif) - Mêmes valeurs que pour une contrainte d'ordre simple.

La structure d'une contrainte de commande d'un ensemble de ressources est la suivante :

ha_cluster_constraints_order:
  - resource_sets:
      - resource_ids:
          - resource-id1
          - resource-id2
        options:
          - name: option-name
            value: option-value
    id: constraint-id
    options:
      - name: score
        value: score-value
      - name: option-name
        value: option-value

Pour un exemple de playbook de rôle système ha_cluster qui crée un cluster avec des contraintes de ressources, voir Configuration d'un cluster de haute disponibilité avec des contraintes de ressources.

ha_cluster_constraints_ticket

Cette variable définit les contraintes des tickets de ressources. Les contraintes de ticket de ressource indiquent les ressources qui dépendent d'un certain ticket. Il existe deux types de contraintes de ticket de ressource : une contrainte de ticket simple pour une ressource et une contrainte d'ordre de ticket pour plusieurs ressources.

Vous pouvez configurer les éléments suivants pour une simple contrainte de ticket de ressource :

  • resource (obligatoire) - Spécification d'une ressource à laquelle la contrainte s'applique.

    • id (obligatoire) - ID de la ressource.
    • role (facultatif) - Le rôle de la ressource auquel la contrainte est limitée : Started, Unpromoted, Promoted.
  • ticket (obligatoire) - Nom du ticket dont dépend la ressource.
  • id (facultatif) - ID de la contrainte. S'il n'est pas spécifié, il sera généré automatiquement.
  • options (facultatif) - Liste de dictionnaires nom-valeur.

    • loss-policy (facultatif) - Action à effectuer sur la ressource si le ticket est révoqué.

Par défaut, aucune contrainte de ticket de ressource n'est définie.

La structure d'une simple contrainte de ticket de ressources est la suivante :

ha_cluster_constraints_ticket:
  - resource:
      id: resource-id
      role: resource-role
    ticket: ticket-name
    id: constraint-id
    options:
      - name: loss-policy
        value: loss-policy-value
      - name: option-name
        value: option-value

Vous pouvez configurer les éléments suivants pour une contrainte de ticket d'ensemble de ressources :

  • resource_sets (obligatoire) - Liste des ensembles de ressources.

    • resource_ids (obligatoire) - Liste des ressources d'un ensemble.
    • options (facultatif) - Liste de dictionnaires nom-valeur affinant la manière dont les ressources des ensembles sont traitées par la contrainte.
  • ticket (obligatoire) - Même valeur que pour une simple contrainte de ticket.
  • id (facultatif) - Même valeur que pour une contrainte de ticket simple.
  • options (facultatif) - Mêmes valeurs que pour une contrainte de ticket simple.

La structure d'une contrainte de ticket d'ensemble de ressources est la suivante :

ha_cluster_constraints_ticket:
  - resource_sets:
      - resource_ids:
          - resource-id1
          - resource-id2
        options:
          - name: option-name
            value: option-value
    ticket: ticket-name
    id: constraint-id
    options:
      - name: option-name
        value: option-value

Pour un exemple de playbook de rôle système ha_cluster qui crée un cluster avec des contraintes de ressources, voir Configuration d'un cluster de haute disponibilité avec des contraintes de ressources.

ha_cluster_qnetd

(RHEL 9.1 et versions ultérieures) Cette variable configure un hôte qnetd qui peut ensuite servir de périphérique quorum externe pour les clusters.

Vous pouvez configurer les éléments suivants pour un hôte qnetd:

  • present (optionnel) - Si true, configurer une instance qnetd sur l'hôte. Si false, supprimer la configuration de qnetd sur l'hôte. La valeur par défaut est false. Si vous définissez true, vous devez définir ha_cluster_cluster_present à false.
  • start_on_boot (facultatif) - Indique si l'instance qnetd doit démarrer automatiquement au démarrage. La valeur par défaut est true.
  • regenerate_keys (facultatif) - Définissez cette variable sur true pour régénérer le certificat TLS qnetd. Si vous régénérez le certificat, vous devez soit réexécuter le rôle pour chaque cluster afin de le connecter à nouveau à l'hôte qnetd, soit exécuter pcs manuellement.

Vous ne pouvez pas exécuter qnetd sur un nœud de cluster car la clôture perturberait le fonctionnement de qnetd.

Pour un exemple de playbook ha_cluster System Role qui configure un cluster à l'aide d'un dispositif de quorum, voir Configuration d'un cluster à l'aide d'un dispositif de quorum.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.