LINUX:Pacemaker - Paramétrage des services en Failover

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

retour à Pacemaker - Serveurs en Failover


But

Maintenant que le nécessaire est en place, nous allons y placer quelques éléments pratiques: quelques services classiques. Mais avant d'aborder la suite de la configuration de Pacemaker, il nous faut les paramétrer un minimum afin de tester cet ensemble. Pour ne pas alourdir cet article, nous les avons détaillés à part.


Services

Nous allons paramétrer quelques éléments:

  • les certificats qui seront utilisés par Apache, Postfix et Dovecot
  • PHP, langage de script, utilisé par Apache
  • le service Web, Apache
  • le service de base de données, Mariadb souvent utilisé dans les applications Web tel WordPress
  • le service de messagerie, Postfix
  • le service de relevé de courrier, Dovecot

Toutes ces services seront actifs sur la machine qui aura la main, celle où Drbd est à l'état actif ou Primary. Ces paramétrages seront identiques sur les deux machines du cluster afin que l'une ou l'autre puissent prendre la main à tout moment.

Les données de ces services seront placés sur l'espace partagé.


Du côté de la machine en attente, il faut qu'un service minimum de messagerie soit actif pour pouvoir relayer les messages du système. Une configuration minimale de Postfix sera prévue à cet effet.


Certificats

Pour les services Apache, Postfix et Dovecot, il nous faut des certificats, ce seront les mêmes pour ces trois services. Nous nous utiliserons les procédures présentées dans les articles concernant la Création d'une CA privée (V1) et l'Extension de la CA privée (V3).

Dans notre cas, le nom du serveur est "cluster.home.dom" et son adresse IP est "192.168.1.73". Nous allons passer en revue l'ensemble des commandes qui vont générer les fichiers nécessaires.

  • Création de la clé de l’autorité de certification (CA): ca.key
openssl genrsa -out ca.key -passout pass:MOTDEPASSESECRET 2048 
  • Création du certificat de l’autorité de certification (CA): ca.home.crt
openssl req -new -days 3650 -x509 -out ca.home.crt -passin pass:MOTDEPASSESECRET -key ca.key -subj '/CN=CA.home.dom/emailAddress=pdupont@gmail.com/OU=Dupont/O=Home/L=Namur/ST=Belgique/C=BE'
  • Création du n° de série des certificats générés
echo "01" > ca.home.srl
  • Création de la clé du serveur "cluster.home.dom": cluster.key
openssl genrsa -out cluster.key 2048
  • Création du fichier pour la création de certificats de version 3: reqv3.cnf

[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[ alt_names ]
DNS = cluster.home.dom
IP = 192.168.1.73

  • Création de la requête de certificats pour le serveur "cluster.home.dom": cluster.home.csr
openssl req -new -key cluster.key -out cluster.home.csr -subj '/CN=cluster.home.dom/emailAddress=pdupont@gmail.com/OU=Dupont/O=Home/L=Namur/ST=Belgique/C=BE'
  • Création du certificat du serveur "cluster.home.dom": cluster.home.crt
openssl x509 -req -days 3650 -extensions v3_req -extfile reqv3.cnf -in cluster.home.csr -out cluster.home.crt -passin pass:MOTDEPASSESECRET -CA ca.home.crt -CAkey ca.key -CAserial ca.home.srl
  • Création de la chaîne de certificats (CA et serveur): cluster.home.pem
cat cluster.home.crt ca.home.crt > cluster.home.pem


Au final, nous aurons besoins de deux fichiers:

  • la clé du serveur: cluster.key
  • la chaîne des deux certificats (CA et serveur): cluster.home.pem

Sur les deux serveurs du cluster, nous créons le répertoire "/etc/pki/WEB" et en dessous les répertoires "private", où on copie la clé, et "certs", où on copie la chaîne des certificats.


PHP

On installe le langage de script PHP


Service Web - Apache

Configuration centrale

Le fichier de configuration principal est "/etc/httpd/conf/httpd.conf". Nous n'y changerons que peu d'options.

En premier, nous désactivons toutes les sections et options qui font référence au répertoire par défaut: "/var/www".

Par défaut, tous les fichiers complémentaires pour les sites et applications se retrouvent dans le répertoire "/etc/httpd/conf.d". Nous avons l'habitude de créer un répertoire latéral où on met ce qui nous est nécessaire, adaptés à nos besoins et en évitant ainsi les configurations inutiles. Nous nommons ce répertoire "/etc/httpd/conf.d.web" avec les droits adaptés.

Dans le fichier "/etc/httpd/conf/httpd.conf", il faut adapter cette inclusion en conséquence. En fin de fichier, la ligne:


IncludeOptional conf.d/*.conf

devient:


IncludeOptional conf.d.web/*.conf


Configurations latérales

Ces fichiers de configuration sont mis dans le répertoire "/etc/httpd/conf.d.web".

  • On y place le fichier concernant PHP sans modification "php.conf" qui se trouve à l'origine dans le répertoire "/etc/httpd/conf.d".
  • Le service Http pourra être crypté; à cet effet, on y place le fichier concerné "ssl.conf" avec peu de modifications. Il se trouve à l'origine dans le répertoire "/etc/httpd/conf.d". Les seules modifications concernent la clé et les certificats créés au début.

Ces lignes deviennent:


SSLCertificateFile /etc/pki/WEB/certs/cluster.home.pem
SSLCertificateKeyFile /etc/pki/WEB/private/cluster.key

  • On va définir la base de notre site Web dans l'espace partage. On crée le répertoire "/data/web" avec les droits nécessaires.

ATTENTION: Faire cette opération seulement sur la machine active quand l'espace partagé est monté sur "/data".

  • On crée ensuite le fichier de configuration du point d'entrée du site.

Voici le contenu de ce fichier que nous avons nomme "root.conf" placé dans le répertoire "/etc/httpd/conf.d.web".


DocumentRoot "/data/web"
<Directory "/data/web">
 <IfModule mod_authz_core.c>
  Require all granted
 </IfModule>
</Directory>

  • Enfin on crée un script qui sera interprété et affiché dans notre explorateur Web. Il fait référence à PHP pour afficher le nom de la machine hôte active. Ce fichier se nomme "index.php" et est placé dans le répertoire "/data/web".

<!DOCTYPE HTML >
<html>
 <body>
  <?php
   $host=gethostname();
   printf("Nom du serveur: %s", $host);
  ?>
  <br>
 </body>
</html>


Service de base de données - Mariadb

On installe le service de base de données Mariadb Server.

Les fichiers de base de données seront placés dans l'espace partagé. On y crée le répertoire "/data/mysql". On n'oublie pas de lui attribuer les droits:

chown -R mysql:mysql /data/mysql

ATTENTION: Faire cette opération seulement sur la machine active quand l'espace partagé est monté sur "/data".

Dans le fichier de configuration de ce service "/etc/my.conf.d/mariadb-server.cnf", on change la ligne:


datadir=/var/lib/mysql

par:


datadir=/data/mysql

On peut lancer une première fois ce service et le sécuriser et ensuite l'arrêter. La base de données sera initialisée.






retour à Pacemaker - Serveurs en Failover