LINUX:Pacemaker - Paramétrage des services en Failover
→ 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
- le service Web, Apache
- PHP, langage de script, utilisé par Apache
- le service de messagerie, Postfix
- le service de relevé de courrier, Dovecot
- le service de base de données, Mariadb souvent utilisé dans les applications Web tel WordPress
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>
→ retour à Pacemaker - Serveurs en Failover