GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment configurer la haute disponibilité Nginx avec Pacemaker et Corosync sur CentOS 7

Dans ce didacticiel, nous vous expliquerons étape par étape comment créer un serveur Web Nginx de cluster à haute disponibilité avec Pacemaker, Corosync et Pcsd. Nous allons créer le serveur Web Nginx de cluster actif-passif ou de cluster de basculement à l'aide de Pacemaker sur un système CentOS 7.

stimulateur cardiaque est un logiciel de gestion de cluster open source qui atteint une haute disponibilité maximale de vos services. Il s'agit d'un gestionnaire de cluster HA avancé et évolutif distribué par ClusterLabs.

Corosync Cluster Engine est un projet open source dérivé du projet OpenAIS sous nouvelle licence BSD. Il s'agit d'un système de communication de groupe avec des fonctionnalités supplémentaires pour la mise en œuvre de la haute disponibilité dans les applications.

Il existe quelques applications pour les interfaces Pacemaker. PCSD est l'une des interfaces de ligne de commande et de l'interface graphique de Pacemaker pour gérer le Pacemaker. Nous pouvons créer, configurer ou ajouter un nouveau nœud au cluster avec la commande pcsd pcs.

Prérequis

  • 2 serveurs CentOS 7 ou plus
    • web01       10.0.15.10
    • web02       10.0.15.11
    • web03       10.0.15.12
  • Adresse IP flottante 10.0.15.15
  • Privilèges racine

Ce que nous allons faire :

  1. Mapper le fichier hôte
  2. Installer le référentiel Epel et Nginx
  3. Installer et configurer Pacemaker, Corosync et Pcsd
  4. Créer et configurer le cluster
  5. Désactiver STONITH et ignorer la politique de quorum
  6. Ajouter l'IP flottante et les ressources
  7. Ajouter des règles au cluster
  8. Configurer le pare-feu
  9. Tester la configuration

Étape 1 - Mapper le fichier hôte

Remarque  : Exécutez les étapes 1 à 3 sur tous les serveurs web01, web02 et web03.

La première étape consiste à modifier le fichier hôte sur chaque serveur afin de mapper le nom d'hôte de tous les serveurs. Nous avons des serveurs 'web01', 'web02' et 'web03', connectez-vous à chaque serveur avec le compte ssh.

ssh [email protected][01,02,03]

Modifiez le fichier '/etc/hosts' avec vim.

vim /etc/hosts

Collez-y la configuration suivante.

10.0.15.10      web01
10.0.15.11      web02
10.0.15.12      web03

Enregistrez et quittez.

Testez maintenant la configuration de mappage des hôtes.

ping -c 3 web01
ping -c 3 web02
ping -c 3 web03

Assurez-vous que "web01", "web02" et "web03" sont associés aux bonnes adresses IP.

Étape 2 - Installer le référentiel Epel et Nginx

Dans cette étape, nous allons installer le référentiel epel puis installer le serveur Web Nginx. Le référentiel EPEL ou Extra Packages for Enterprise Linux est nécessaire pour installer les packages Nginx.

Installez le référentiel EPEL à l'aide de la commande yum suivante.

yum -y install epel-release

Installez maintenant le serveur Web Nginx à partir du référentiel EPEL.

yum -y install nginx

Une fois l'installation terminée, modifiez la page index.html par défaut sur chaque serveur avec une nouvelle page.

#Run Command on 'web01'
echo '<h1>web01 - hakase-labs</h1>' > /usr/share/nginx/html/index.html

#Run Command on 'web02'
echo '<h1>web02 - hakase-labs</h1>' > /usr/share/nginx/html/index.html

#Run Command on 'web03'
echo '<h1>web03 - hakase-labs</h1>' > /usr/share/nginx/html/index.html

Le référentiel EPEL et le serveur Web Nginx sont maintenant installés sur le système.

Étape 3 - Installer et configurer Pacemaker, Corosync et Pcsd

Pacemaker, Corosync et Pcsd sont disponibles dans le référentiel système par défaut. Ils peuvent donc tous être installés à partir du référentiel CentOS à l'aide de la commande yum suivante.

yum -y install corosync pacemaker pcs

Une fois l'installation terminée, activez tous les services pour qu'ils se lancent automatiquement au démarrage du système à l'aide des commandes systemctl ci-dessous.

systemctl enable pcsd
systemctl enable corosync
systemctl enable pacemaker

Démarrez maintenant l'interface de ligne de commande pcsd Pacemaker sur tous les serveurs.

systemctl start pcsd

Ensuite, créez un nouveau mot de passe pour l'utilisateur 'hacluster' et utilisez le même mot de passe pour tous les serveurs. Cet utilisateur a été créé automatiquement lors de l'installation du logiciel.

Voici comment configurer un mot de passe pour le 'hacluster ' utilisateur.

passwd hacluster
Enter new password:

Pile logicielle haute disponibilité Pacemaker, Corosync et Pcsd sont installés sur le système.

Étape 4 - Créer et configurer le cluster

Remarque  :Exécutez les étapes 4 à 7 sur 'web01' uniquement.

Dans cette étape, nous allons créer un nouveau cluster avec 3 serveurs centos. Configurez ensuite l'adresse IP flottante et ajoutez de nouvelles ressources Nginx.

Pour créer le cluster, nous devons autoriser tous les serveurs à l'aide de la commande pcs et de l'utilisateur hacluster.

Autorisez tous les serveurs avec la commande pcs et l'utilisateur et le mot de passe hacluster.

pcs cluster auth web01 web02 web03
Username: hacluster
Password: [email protected]

Il est maintenant temps de configurer le cluster. Définissez le nom du cluster et tous les serveurs qui feront partie du cluster.

pcs cluster setup --name hakase_cluster web01 web02 web03

Maintenant, démarrez tous les services du cluster et activez-les également.

pcs cluster start --all
pcs cluster enable --all

Ensuite, vérifiez l'état du cluster.

pcs status cluster

Étape 5 - Désactiver STONITH et ignorer la politique de quorum

Puisque nous n'utilisons pas le dispositif d'escrime, nous allons désactiver le STONITH. STONITH ou Shoot The Other Node In The Head est l'implémentation de l'escrime sur Pacemaker. Si vous êtes en production, il est préférable d'activer STONITH.

Désactivez STONITH avec la commande pcs suivante.

pcs property set stonith-enabled=false

Ensuite, pour la politique de quorum, ignorez-la.

pcs property set no-quorum-policy=ignore

Vérifiez la liste des propriétés et assurez-vous que stonith et la politique de quorum sont désactivées.

pcs property list

La politique de STONITH et de quorum est désactivée.

Étape 6 - Ajouter l'adresse IP flottante et les ressources

L'adresse IP flottante est l'adresse IP qui peut être migrée/déplacée automatiquement d'un serveur à un autre dans le même centre de données. Et nous avons déjà défini l'adresse IP flottante pour la haute disponibilité du stimulateur cardiaque comme étant "10.0.15.15". Nous voulons maintenant ajouter deux ressources, la ressource d'adresse IP flottante avec le nom "virtual_ip" et une nouvelle ressource pour le serveur Web Nginx nommée "webserver".

Ajoutez la nouvelle adresse IP flottante de ressource "virtual_ip" à l'aide de la commande pcs comme indiqué ci-dessous.

pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=10.0.15.15 cidr_netmask=32 op monitor interval=30s

Ensuite, ajoutez une nouvelle ressource pour le "serveur Web" Nginx.

pcs resource create webserver ocf:heartbeat:nginx configfile=/etc/nginx/nginx.conf op monitor timeout="5s" interval="5s"

Assurez-vous que vous n'avez obtenu aucun résultat d'erreur, puis vérifiez les ressources disponibles.

pcs status resources

Vous verrez deux ressources 'virtual_ip' et un 'webserver'. De nouvelles ressources pour le serveur Web Floating IP et Nginx ont été ajoutées.

Étape 7 - Ajouter des règles de contrainte au cluster

Dans cette étape, nous allons configurer les règles de haute disponibilité et configurer la contrainte de ressources avec l'interface de ligne de commande pcs.

Définissez la contrainte de classement pour les ressources du serveur Web et de l'adresse IP virtuelle avec le score 'INFINITY'. Configurez également les ressources webserver et virtual_ip de la même manière sur tous les nœuds de serveur.

pcs constraint colocation add webserver virtual_ip INFINITY

Définissez les ressources 'virtual_ip' et 'webserver' toujours sur les mêmes serveurs de nœuds.

pcs constraint order virtual_ip then the webserver

Ensuite, arrêtez le cluster, puis redémarrez.

pcs cluster stop --all
pcs cluster start --all

Maintenant, vérifiez à nouveau les ressources et vous verrez leur statut comme 'Démarré' sur le même serveur 'web01'.

pcs status resources

Les ressources virtual_ip et webserver ont été démarrées sur le même serveur/nœud 'web01'.

Étape 8 - Configurer Firewalld

Le cluster HA fonctionnera sous la configuration du pare-feu firewalld - installez-le si vous n'avez pas le package.

yum -y install firewalld

Démarrez firewalld et activez-le pour qu'il s'exécute automatiquement à chaque démarrage du système à l'aide des commandes systemctl suivantes.

systemctl start firewalld
systemctl enable firewalld

Ensuite, ajoutez de nouveaux services au pare-feu avec les commandes firewall-cmd - ajoutez des services de haute disponibilité, HTTP et HTTPS pour Nginx.

firewall-cmd --permanent --add-service=high-availability
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https

Rechargez la configuration du pare-feu et vérifiez tous les services.

firewall-cmd --reload
firewall-cmd --list-all

Assurez-vous que le service ha avec HTTP et https est présent dans la liste.

Étape 9 - Tester

Dans cette étape, nous allons faire des tests pour le cluster. Testez l'état du nœud ("En ligne" ou "Hors ligne"), testez les membres et l'état de corosync, puis testez la haute disponibilité du serveur Web Nginx en accédant à l'adresse IP flottante.

Testez l'état du nœud avec la commande suivante.

pcs status nodes

Tous les nœuds sont 'En ligne'.

Testez les membres corosync.

corosync-cmapctl | grep members

Vous obtiendrez l'adresse IP des membres de Corosync.

Vérifiez les membres Corosync et vous verrez le résultat comme indiqué ci-dessous.

pcs status corosync

Et enfin, vérifiez la haute disponibilité du serveur Web. Ouvrez votre navigateur Web et tapez l'adresse IP flottante '10.0.15.15'.

Vous verrez la page Web du serveur 'web01'.

Ensuite, arrêtez le cluster sur le serveur 'web01' avec la commande ci-dessous.

pcs cluster stop web01

Et vérifiez à nouveau la page, et vous obtiendrez la page du serveur 'web02' comme ci-dessous.

Supplémentaire :

Vérifiez l'état du cluster avec la commande ci-dessous.

pcs status

Et vous obtiendrez le résultat comme indiqué ci-dessous.

La configuration de la haute disponibilité du serveur Web Nginx avec Pacemaker, Corosync et Pcsd sur le serveur CentOS 7 s'est terminée avec succès.


Cent OS
  1. Comment installer et configurer Nginx sur CentOS 7

  2. Comment installer phpMyAdmin avec Nginx sur CentOS 7

  3. Comment installer Nextcloud avec Nginx et PHP 7.3 sur CentOS 8

  4. Comment installer ownCloud 9.1 avec Nginx et MariaDB sur CentOS 7

  5. Comment configurer le cluster haute disponibilité Nginx à l'aide de Pacemaker sur CentOS 7

Comment installer OwnCloud 8 avec Nginx et MariaDB sur CentOS 7

Comment installer Shopware 6 avec NGINX et Lets Encrypt sur CentOS 8

Comment installer Nginx avec ngx_pagespeed sur CentOS

Comment installer OwnCloud 8 avec Nginx et PHP-FPM sur CentOS 6

Comment installer Nginx avec PHP-FastCGI sur CentOS 6

Comment installer et configurer Hive avec une haute disponibilité – Partie 7