HAProxy et Corosync/Pacemaker

On va mettre en place deux serveurs HAProxy chargé de faire de la répartition de charge entre les différents serveurs WEB, les deux serveurs HAProxy forment un cluster dans le but d’assurer une tolérance aux pannes, on dispose de deux sites web différents, hébergé par plusieurs serveur différents (comme on pourra le voir dans le tableau)

Schéma de la DMZ :

Hostname

Rôle

@IP

ha1

HAProxy N°1

172.17.0.2

ha2

HAProxy N°2

172.17.0.3

VIP

172.17.0.4

oppenheimer

W1

172.17.0.5

hawking

W2

172.17.0.6

edison

W3

172.17.0.7

Liste des sites web :

FQDN

Hébergé sur :

www.kvbooktic.local.

oppenheimer (W1) et edison (W3)

www.bobooktic.local.

hawking (W2) et edison (W3)

Comme la DMZ n’a pas le droit d’initier des connexions j’ai ajouté une règle autorisant les PC de ma DMZ à communiqué avec l’extérieur.

Remarque : Ne pas oublier de supprimer cette règle quand tous sera fini.

On peut accéder à la fiche de test en cliquant ici.

I°) Configuration serveurs WEB

W1, /etc/apache2/sites-available/000-default.conf :

W2, /etc/apache2/sites-available/000-default.conf :

W3, contient site 1 et site 2 dans les fichiers /etc/apache2/sites-available/kvbooktic.local.conf et /etc/apache2/sites-available/bobooktic.local.conf. Ces fichiers contiennent les mêmes configurations que les fichiers de W1 et W2.

Tester (voir fiche de test A)

II°) Configuration HAProxy

Installer HAProxy (apt-get install haproxy)

HA1, dans le fichier de configuration (/etc/haproxy/haproxy.cfg), j’ajoute à la fin :

Redémarrer le service et vérifier.

Remarque : le fichier de configuration doit être présent et identique sur les deux serveurs HAProxy.

Tester (voir fiche de test B)

III°) Configuration Corosync/Pacemaker

Installer Corosync & crmsh sur les deux serveurs HAProxy.

Sur ha1, configurer /etc/corosync/corosync.conf, modification :

Ajout :

Télécharger le OCF HAProxy (on a besoin que du fichier haproxy) : https://github.com/russki/cluster-agents

Placer ce fichier dans /usr/lib/ocf/resource.d/heartbeat et lui donner les droits d’exécution.

Installer le paquet haveged

Créer la clé d’authentification :

Vérifier qu’elle est bien créée dans /etc/corosync

On copie le fichier de configuration de Corosync, la clé d’authentification et l’OCF sur le deuxième HAProxy.

Remarque : L’OCF doit être présent sur les deux HAProxy !!!

Démarrer les services sur les deux HAProxy

Attention : Pacemaker doit toujours être lancé après Corosync !!!

Vérifier que le cluster fonctionne avec la commande crm status.

Désactivation du STONITH et ignorer la politique de quorum.

On vérifie que les changements ont bien été prises en compte (j’en profite pour changer le nom du cluster)

Création de l’adresse IP virtuelle.

Création du cluster HAProxy

Vérifier les ressources créées

Remarque : pour supprimer une ressource, la stopper (crm resource stop nom_resource), pour la supprimer : crm configure delete nom_resource.

Création d’un groupe de ressource.

Tester (cf. voir fiche de test C)

IV°) Configuration DNS

Ajouter enregistrement A pour chaque zone.

V°) Configuration IPCOP

Règle autorisant le LAN à atteindre les serveurs web :

Règle de redirection de port pour l’extérieur :