« LINUX:Pacemaker - Configuration de base » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 167 : | Ligne 167 : | ||
tcp 0 0 0.0.0.0:2224 0.0.0.0:* LISTEN 14864/python3 | tcp 0 0 0.0.0.0:2224 0.0.0.0:* LISTEN 14864/python3 | ||
---- | ---- | ||
=Configuration centralisée grâce à Pcs= | |||
Maintenant nous pouvons commencer la configuration de Pacemaker et de Corosync. | |||
==Définir les machines faisant partie du cluster== | |||
La commande suivante permet d'ajouter les machines qui vont converser ensemble: | |||
pcs host auth fo1.home.dom fo2.home.dom -u hacluster -p Chasse4321Eau | |||
Nous y trouvons le nom de nos deux machines. | |||
On y constate également notre utilisateur Unix "hacluster" et son mot de passe "Chasse4321Eau". Ces deux paramètres additionnels nous évite que la commande ne nous les demande interactivement. | |||
==Création du cluster== | |||
La commande suivante crée le cluster auquel nous avons donné de nom de "fo_cluster" et qui va inclure nos deux machines. | |||
Par la même occasion, Corosync va être configuré. Il utilisera le protocole crypté "knet" en utilisant le port UDP multicast 5420 sous IPV4. | |||
pcs cluster setup fo_cluster fo1.home.dom addr=192.168.1.71 fo2.home.dom addr=192.168.1.72 transport knet ip_version=ipv4 link transport=udp mcastport=5420 | |||
Si vous avez plusieurs clusters qui cohabitent, donnez un n° de port différents. | |||
Version du 7 février 2023 à 19:14
→ retour au menu de la Haute disponibilité
But
Avant d'aborder des cas spécifiques de clusters, on passe d'office par une étape de configuration de base commune à tous les cas. Par la suite, quand on abordera notre cas spécifique de Loadbalancing, deux paramètres seront changés.
Matériel et adressage IP
Pour ces exercices, nous avons besoin de deux machines, chacune avec deux interfaces réseaux. Le schéma ci-dessous reprend la connectique, le nom des machines Linux et leur adressage IP.
Prérequis
Uniformisation des noms des interfaces réseaux
Il est conseillé et dans une situation future, que les noms des interfaces réseaux soient uniformisés sur les différentes machines du cluster.
- Du côté du réseau "192.168.1.0/24", nous avons opté pour le nom "eth1".
- Du côté du réseau "192.168.2.0/24", nous avons opté pour le nom "eth2".
Pour effectuer cette tâche, voyez l'article traitant du Renommage du nom de l'interface réseau.
Selinux
Pour une question de facilité, nous désactivons la couche Selinux. Pour y arriver, on change la ligne suivante dans le fichier "/etc/selinux/config":
SELINUX=enforcing
par:
SELINUX=disabled
Fichier "hosts"
Sur chaque machine du cluster, on ajoute un nom aux différentes adresses réseaux. On le fait en local dans le fichier "/etc/hosts" suivant le schéma ci-dessus. Son contenu devient:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.71 fo1.home.dom 192.168.1.72 fo2.home.dom 192.168.2.71 fd1.data.dom 192.168.2.72 fd2.data.dom # serveur mail 192.168.1.110 servermail.home.dom home.dom
Pour nos exemples, les lignes 7 et 8 ne sont pas nécessaires car tout se passera pour cette phase par les interfaces "eth1".
Postfix
Dans tous les applications futures, on demandera à Pacemaker de nous avertit de l'état du cluster par mail. Il nous faut donc configurer Postfix au minimum pour transférer ce message à notre serveur de messagerie central "192.168.1.110" ayant le nom de domaine "home.dom". Voyez l'article Postfix-Configuration des serveurs de messagerie latérale et parents.
Voici le contenu du fichier "/etc/postfix/main.cf":
# nouveaux paramètres relayhost = [192.168.1.110] inet_protocols = ipv4 # paramètres par défaut compatibility_level = 3.7 queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix mail_owner = postfix inet_interfaces = localhost mydestination = $myhostname, localhost.$mydomain, localhost unknown_local_recipient_reject_code = 550 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop meta_directory = /etc/postfix shlib_directory = /usr/lib64/postfix
Sur base de la configuration de base, on change deux paramètres.
Voici le contenu du fichier "/etc/postfix/main.cf":
# ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (no) (never) (100) # ========================================================================== pickup unix n - n 60 1 pickup cleanup unix n - n - 0 cleanup qmgr unix n - n 300 1 qmgr tlsmgr unix - - n 1000? 1 tlsmgr rewrite unix - - n - - trivial-rewrite bounce unix - - n - 0 bounce defer unix - - n - 0 bounce trace unix - - n - 0 bounce verify unix - - n - 1 verify flush unix n - n 1000? 0 flush proxymap unix - - n - - proxymap proxywrite unix - - n - 1 proxymap smtp unix - - n - - smtp showq unix n - n - - showq error unix - - n - - error retry unix - - n - - error discard unix - - n - - discard local unix - n n - - local lmtp unix - - n - - lmtp anvil unix - - n - 1 anvil scache unix - - n - 1 scache postlog unix-dgram n - n - 1 postlogd
La configuration par défaut est suffisante; nous avons éliminé tous les processus à l'écoute.
Enfin nous ajoutons à la fin du fichier "/etc/aliases", la ligne suivante:
root: adebast@home.dom
Tout message à destination de l'utilisateur "root" local sera redirigé vers l'utilisateur "adebast@home.dom".
Il reste à activer et lancer ce service:
systemctl enable postfix newaliases systemctl start postfix
Si vous avez activé le filtrage du firewall en sortie, ajoutez y cette ligne:
-A OUTPUT -p tcp -m tcp --dport 25 -d 192.168.1.110 -j ACCEPT
Configuration de Pcs sur toutes les machines du cluster
Toute la configuration va se passer à l'aide du programme en ligne de commande "pcs". En premier lieu, il faut initier ce cadre de travail sur toutes les machines du cluster afin qu'elles puissent communiquer.
Initialisation du mot de passe
Sur les deux machines du cluster, un utilisateur "hacluster" est créé. Il va servir au transfert d'informations sécurisé. Son utilisation est désactivé. Pour le rendre utilisable, il faut initialiser le mot de passe par la commande suivante:
passwd hacluster
Il demande le nouveau mot de passe et sa confirmation. Nous attribuerons le mot de passe: "Chasse4321Eau" (A adapter à votre convenance. Cette tâche est à effectuer sur chaque machine du cluster.
Service "pcsd.service"
Pour effectuer la configuration, on utilisera la commande de ligne "pcs" qui va transmettre nos ordres au service local "pcsd.service". Il va le transmettre aux services équivalent "pcsd.service" s'exécutant également sur les autres machines du cluster. Ce qui nous permettra de faire ces manipulation qu'à partir d'une seule machine.
Mais en premier lieu, nous désirons restreindre ce trafic à la couche IPV4. Dans le fichier de configuration de ce service "/etc/sysconfig/pcsd'", on ajoute la ligne:
PCSD_BIND_ADDR='0.0.0.0'
On remarque au passage, dans ce fichier, que le port d'écoute TCP de ce service est par défaut le 2224 ("PCSD_PORT=2224").
On peut maintenant lancer ce service:
systemctl start pcsd.service
Ces opérations sont à faire sur toutes les machines du cluster.
A ce stade, on peut constater qu'un nouveau port est à l'écoute. La commande suivante:
netstat -nltp | grep 2224
donne:
tcp 0 0 0.0.0.0:2224 0.0.0.0:* LISTEN 14864/python3
Configuration centralisée grâce à Pcs
Maintenant nous pouvons commencer la configuration de Pacemaker et de Corosync.
Définir les machines faisant partie du cluster
La commande suivante permet d'ajouter les machines qui vont converser ensemble:
pcs host auth fo1.home.dom fo2.home.dom -u hacluster -p Chasse4321Eau
Nous y trouvons le nom de nos deux machines. On y constate également notre utilisateur Unix "hacluster" et son mot de passe "Chasse4321Eau". Ces deux paramètres additionnels nous évite que la commande ne nous les demande interactivement.
Création du cluster
La commande suivante crée le cluster auquel nous avons donné de nom de "fo_cluster" et qui va inclure nos deux machines. Par la même occasion, Corosync va être configuré. Il utilisera le protocole crypté "knet" en utilisant le port UDP multicast 5420 sous IPV4.
pcs cluster setup fo_cluster fo1.home.dom addr=192.168.1.71 fo2.home.dom addr=192.168.1.72 transport knet ip_version=ipv4 link transport=udp mcastport=5420
Si vous avez plusieurs clusters qui cohabitent, donnez un n° de port différents.
→ retour au menu de la Haute disponibilité