Chapitre 24. Configuration d'un cluster à haute disponibilité à l'aide du rôle de système RHEL ha_cluster
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 valeurtrue
(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. Lorsqueha_cluster_manage_firewall
vauttrue
, le service de haute disponibilité du pare-feu et le portfence-virt
sont activés. Lorsqueha_cluster_manage_firewall
a pour valeurfalse
, le rôle systèmeha_cluster
ne gère pas le pare-feu. Si votre système exécute le servicefirewalld
, vous devez définir le paramètre surtrue
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èmefirewall
.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 surtrue
.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èmeselinux
. Lorsqueha_cluster_manage_selinux
a la valeurtrue
, les ports appartenant au service de haute disponibilité du pare-feu sont associés au type de port SELinuxcluster_port_t
. Lorsqueha_cluster_manage_selinux
est défini surfalse
, le rôle systèmeha_cluster
ne gère pas SELinux.Si votre système exécute le service
selinux
, vous devez définir ce paramètre surtrue
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èmeselinux
.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 surfalse
, 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
etnode2
- 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'utilisateurhacluster
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 valeurauthkey
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 valeurauthkey
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
oufence-xvm
, qui est l'emplacement de la clé d'authentification pour l'agent de clôturefence-virt
oufence-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èmecertificate
.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 variableha_cluster_pcsd_certificates
, le rôle systèmecertificate
est utilisé en interne et crée la clé privée et le certificat pourpcsd
comme défini. -
Ne définissez pas les variables
ha_cluster_pcsd_public_key_src
,ha_cluster_pcsd_private_key_src
ouha_cluster_pcsd_certificates
. Si vous ne définissez aucune de ces variables, le rôle de systèmeha_cluster
créera des certificatspcsd
au moyen depcsd
lui-même. La valeur deha_cluster_pcsd_certificates
est fixée à la valeur de la variablecertificate_requests
telle qu'elle est spécifiée dans le rôle systèmecertificate
. Pour plus d'informations sur le rôle systèmecertificate
, voir Demande de certificats à l'aide des rôles système RHEL.
-
Définissez la variable
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 variablesha_cluster_pcsd_public_key_src
etha_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é.
-
À moins que vous n'utilisiez IPA et que vous ne joigniez les systèmes à un domaine IPA, le rôle système
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 variablesha_cluster_corosync_key_src
,ha_cluster_pacemaker_key_src
,ha_cluster_fence_virt_key_src
,ha_cluster_pcsd_public_key_src
, etha_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
ougroup
-
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 transportudp
etudpu
ne supportent qu'un seul lien. Le cryptage est toujours désactivé pourudp
etudpu
. La valeur par défaut estknet
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 valeurlinknumber
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 transportknet
. 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 transportknet
.Pour une liste des options autorisées, voir la page d'aide
pcs -h cluster setup
ou la descriptionsetup
dans la sectioncluster
de la page de manuelpcs
(8). Pour des descriptions plus détaillées, voir la page de manuelcorosync.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 descriptionsetup
dans la sectioncluster
de la page de manuelpcs
(8). Pour une description plus détaillée, voir la page de manuelcorosync.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
, etwait_for_all
. Pour plus d'informations sur les options de quorum, consultez la page de manuelvotequorum
(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. Seulnet
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èlenet
, vous devez spécifier les optionshost
etalgorithm
.Utilisez l'option
pcs-address
pour définir une adresse et un portpcsd
personnalisés afin de vous connecter à l'hôteqnetd
. Si vous ne spécifiez pas cette option, le rôle se connecte au port par défautpcsd
sur l'hôtehost
.-
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 sontsync_timeout
ettimeout
. Pour les options du modèlenet
, voir la sectionquorum.device.net
. Pour les options heuristiques, voir la sectionquorum.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èmeha_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 estno
-
startmode
- la valeur par défaut estalways
-
timeout-action
- la valeur par défaut estflush,reboot
watchdog-timeout
- la valeur par défaut est5
Pour plus d'informations sur ces options, voir la section
Configuration via environment
de la page de manuelsbd
(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
etnode2
et définit les propriétés des clustersstonith-enabled
etno-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 exempleocf:pacemaker:Dummy
oustonith:fence_xvm
. Il est obligatoire de spécifierstonith:
pour les agents stonith. Pour les agents de ressource, il est possible d'utiliser un nom court, par exempleDummy
, au lieu deocf: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 variableha_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 variableha_cluster_resource_primitives
ouha_cluster_resource_groups
. -
promotable
(facultatif) - Indique si le clone de ressource à créer est un clone promouvable, indiqué partrue
oufalse
. -
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éfautINFINITY
.
-
Une valeur positive de
-
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 syntaxepcs
. Pour plus d'informations, voir la sectionconstraint location
de la page de manuelpcs
(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ù placerresource_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éfautINFINITY
.
-
Les valeurs positives de
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 ressourceresource_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 ressourceresource_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 ressourceresource_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) - Sitrue
, configurer une instanceqnetd
sur l'hôte. Sifalse
, supprimer la configuration deqnetd
sur l'hôte. La valeur par défaut estfalse
. Si vous définisseztrue
, vous devez définirha_cluster_cluster_present
àfalse
. -
start_on_boot
(facultatif) - Indique si l'instanceqnetd
doit démarrer automatiquement au démarrage. La valeur par défaut esttrue
. -
regenerate_keys
(facultatif) - Définissez cette variable surtrue
pour régénérer le certificat TLSqnetd
. 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ôteqnetd
, soit exécuterpcs
manuellement.
-
Vous ne pouvez pas exécuter
qnetd
sur un nœud de cluster car la clôture perturberait le fonctionnement deqnetd
.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.