24.5. Configuration d'un cluster à haute disponibilité avec clôtures et ressources
La procédure suivante utilise le rôle de système ha_cluster
pour créer un cluster à haute disponibilité qui comprend un dispositif de clôture, des ressources de cluster, des groupes de ressources et une ressource clonée.
Conditions préalables
ansible-core
est installé sur le nœud à partir duquel vous souhaitez exécuter le playbook.NoteIl n'est pas nécessaire que
ansible-core
soit installé sur les nœuds membres du cluster.-
Le paquetage
rhel-system-roles
est installé sur le système à partir duquel vous souhaitez exécuter le playbook. - Les systèmes que vous utiliserez comme membres de votre cluster disposent d'une couverture d'abonnement active pour RHEL et RHEL High Availability Add-On.
Le rôle de système ha_cluster
remplace toute configuration de cluster existante sur les nœuds spécifiés. Tous les paramètres non spécifiés dans le rôle seront perdus.
Procédure
- Créez un fichier d'inventaire spécifiant les nœuds de la grappe, comme décrit dans la section Spécification d'un inventaire pour le rôle de système ha_cluster.
Créez un fichier playbook, par exemple
new-cluster.yml
.NoteLors de la création de votre fichier playbook pour la production, le coffre-fort crypte le mot de passe, comme décrit dans Cryptage du contenu avec Ansible Vault.
L'exemple de fichier playbook suivant configure un cluster exécutant les services
firewalld
etselinux
. Le cluster comprend des clôtures, plusieurs ressources et un groupe de ressources. Il comprend également un clone de ressources pour le groupe de ressources.- hosts: node1 node2 vars: ha_cluster_cluster_name: my-new-cluster ha_cluster_hacluster_password: password ha_cluster_manage_firewall: true ha_cluster_manage_selinux: true ha_cluster_resource_primitives: - id: xvm-fencing agent: 'stonith:fence_xvm' instance_attrs: - attrs: - name: pcmk_host_list value: node1 node2 - id: simple-resource agent: 'ocf:pacemaker:Dummy' - id: resource-with-options agent: 'ocf:pacemaker:Dummy' instance_attrs: - attrs: - name: fake value: fake-value - name: passwd value: passwd-value meta_attrs: - attrs: - name: target-role value: Started - name: is-managed value: 'true' operations: - action: start attrs: - name: timeout value: '30s' - action: monitor attrs: - name: timeout value: '5' - name: interval value: '1min' - id: dummy-1 agent: 'ocf:pacemaker:Dummy' - id: dummy-2 agent: 'ocf:pacemaker:Dummy' - id: dummy-3 agent: 'ocf:pacemaker:Dummy' - id: simple-clone agent: 'ocf:pacemaker:Dummy' - id: clone-with-options agent: 'ocf:pacemaker:Dummy' ha_cluster_resource_groups: - id: simple-group resource_ids: - dummy-1 - dummy-2 meta_attrs: - attrs: - name: target-role value: Started - name: is-managed value: 'true' - id: cloned-group resource_ids: - dummy-3 ha_cluster_resource_clones: - resource_id: simple-clone - resource_id: clone-with-options promotable: yes id: custom-clone-id meta_attrs: - attrs: - name: clone-max value: '2' - name: clone-node-max value: '1' - resource_id: cloned-group promotable: yes roles: - rhel-system-roles.ha_cluster
- Enregistrer le fichier.
Exécutez le playbook en indiquant le chemin d'accès au fichier d'inventaire inventory que vous avez créé à l'étape 1.
# ansible-playbook -i inventory new-cluster.yml