Configuration
Tout ce qui se regle par noeud : le bloc HA de webserver.json, l’adresse partagee, le point d’entree, et ce qu’il faut verifier sur les composants et sur un Webserver-Front.
Cle du cluster
Generez une cle et utilisez-la sur tous les noeuds. Elle authentifie les noeuds entre eux.
webserver ha genkey
webserver.json
Sur le premier Webserver (celui qui detient vos donnees actuelles) :
{
"HTTPS": "true",
"PortAPI": "8050",
"PortWEB": "9090",
"AdvertiseAddress": "mugnsoft.example.com",
"HA": {
"NodeID": "node1",
"Bind": "10.0.0.11:7001",
"Key": "<la cle du cluster>",
"Bootstrap": "true",
"Peers": ["10.0.0.12:7001", "10.0.0.13:7001"]
}
}
Sur le second Webserver : le meme bloc avec ses propres NodeID, Bind et Peers, et sans Bootstrap.
Sur le temoin : ses propres NodeID, Bind et Peers, et "Witness": "true".
| Parametre | Signification |
|---|---|
NodeID |
Nom unique du noeud. Ne le changez jamais. |
Bind |
hote:port du canal du cluster sur ce noeud |
Advertise |
Ce que les autres noeuds doivent appeler, si different de Bind |
Key |
La cle du cluster, identique sur tous les noeuds |
Bootstrap |
"true" sur le premier noeud uniquement. Ignore une fois le cluster cree. |
Peers |
Canal du cluster des autres noeuds (voir ci-dessous) |
Witness |
"true" sur le temoin |
AdvertiseAddress |
Le nom partage ou l’IP virtuelle communique aux composants (hors du bloc HA) |
Peers : les autres noeuds
Chaque noeud liste les autres noeuds, pas lui-meme. Avec trois noeuds, chacun en liste deux :
| Noeud | Bind |
Peers |
|---|---|---|
| noeud 1 | 10.0.0.11:7001 |
10.0.0.12:7001, 10.0.0.13:7001 |
| noeud 2 | 10.0.0.12:7001 |
10.0.0.11:7001, 10.0.0.13:7001 |
| temoin | 10.0.0.13:7001 |
10.0.0.11:7001, 10.0.0.12:7001 |
Peers ne sert qu’au demarrage d’un noeud, pour trouver le cluster. Y ajouter l’adresse du noeud lui-meme est sans effet.
Ordre de demarrage
- Demarrez le premier Webserver. Il devient actif avec ses donnees existantes.
- Demarrez le second Webserver, puis le temoin. Chacun copie les donnees du noeud actif, puis rejoint le cluster. Ce qu’un noeud detenait avant de rejoindre est conserve sous
dbs/backup/pre-join-<date>.
Point d’entree
Faites pointer l’IP virtuelle ou le repartiteur vers les deux Webservers, sur les ports WEB et API, avec ce controle de sante :
| Controle | Noeud actif | En attente |
|---|---|---|
GET /ha/health |
200 |
503 |
C’est le controle de sante qui ecarte les clients d’un noeud tombe. Une requete qui arrive sur un noeud en attente n’est pas perdue non plus : il la transmet au noeud actif.
Adresse partagee sur chaque Webserver
Definissez le meme AdvertiseAddress dans webserver.json sur les deux Webservers. C’est l’adresse donnee a chaque composant que l’on configure : par la visite guidee, par le generateur de configuration, a l’enregistrement. Elle est lue dans le fichier de chaque noeud ; le cluster ne la copie pas.
| Situation | Ce qui se passe | Ce qu’affiche le panneau du cluster |
|---|---|---|
Pas d’AdvertiseAddress sur le Webserver actif |
Les composants configures maintenant recoivent l’adresse propre du noeud actif. Ils perdent le Webserver quand un autre noeud prend le relais. | A verifier : “Aucune adresse partagee n’est definie”, avec le nom du serveur actif. Chaque Webserver ecrit aussi un avertissement dans son journal au demarrage. |
Un noeud en attente a un AdvertiseAddress different, ou aucun |
Rien pour l’instant. Les composants ajoutes apres sa prise de relais recevraient une autre adresse. | A verifier : “Adresse partagee : <noeud> n’est pas configure avec la meme adresse que le serveur actif”, avec le nom du serveur a corriger. |
Dans les deux cas : definissez le meme AdvertiseAddress sur le serveur nomme, puis redemarrez-le (un serveur a la fois).
Le temoin ne sert aucun composant et n’a pas besoin d’AdvertiseAddress.
Les composants apres le passage en cluster
Passer d’un Webserver autonome a un cluster n’est pas une migration d’IP : aucun composant n’est a enregistrer de nouveau et aucune commande migrate n’est necessaire. Les fiches des composants, leurs certificats et leurs jetons sont copies sur tous les noeuds, le Webserver qui prend le relais les joint donc aussitot.
| Composant | Ce qu’il detient sur le Webserver | Que faire |
|---|---|---|
| Agent Sentinel | L’adresse vers laquelle il pousse ses donnees | Rien. Quand le Webserver actif demarre avec AdvertiseAddress, il communique l’adresse partagee a chaque agent active. L’agent ne bascule qu’apres avoir verifie qu’il joint cette adresse : il doit donc resoudre le nom et joindre le port API. Un agent trop ancien pour etre prevenu (le journal le dit) est mis a jour, ou enregistre une fois depuis la page Composants. |
| Sonde (Monitor) | Rien en fonctionnement : c’est le Webserver qui l’appelle | Rien. Utilisez l’adresse partagee la prochaine fois que vous lancez register. |
| Integrateur | webserverUrl : le lien place dans les notifications |
Mettez webserverUrl a https://<adresse partagee>:9090 dans integrator.json et redemarrez-le. Sinon les liens continuent d’ouvrir le premier noeud. |
| Nouveaux composants | L’adresse donnee a l’enregistrement | Enregistrez-les avec l’adresse partagee (--webserver <adresse partagee>:8050). |
Webserver-Front avec un cluster
Un Webserver-Front est alimente exactement comme avec un Webserver autonome : le noeud actif pousse les donnees vers lui, a sens unique. Les noeuds en attente restent silencieux. Quand un autre noeud prend le relais, il commence a pousser et renvoie d’abord tout, de sorte que le Front rattrape ce que le noeud precedent n’avait pas encore envoye.
A savoir :
| Point | Pourquoi c’est important |
|---|---|
| Installez le materiel de replication sur les deux Webservers | ReplKey et les fichiers pki/ (certificat et cle client, cle de signature, CA) sont declares dans webserver.json et stockes sur disque. Le cluster ne les copie pas. Un noeud qui prend le relais sans eux sert normalement mais ne peut pas pousser vers le Front, qui affiche alors des donnees perimees. |
| Gardez les horloges synchronisees (NTP) | Le Front conserve la copie qui porte l’heure la plus recente. Si l’horloge du noeud qui prend le relais est en retard, le Front ignore ses mises a jour jusqu’a ce qu’elle rattrape. |
| Les parametres du Front sont partages | L’activation de la replication, l’adresse du Front et la cadence sont enregistres dans l’interface et copies sur tous les noeuds. Rien a repeter par noeud. |
| Testez une bascule une fois | Apres l’installation du cluster, arretez le Webserver actif et verifiez que l’indicateur de fraicheur du Front continue d’avancer. |
Le panneau du cluster le verifie pour vous : quand un Front est declare et que la cle de replication ou les certificats d’un Webserver sont absents, invalides ou differents de ceux du noeud actif, le panneau affiche A verifier et nomme le serveur, avant toute bascule. Si le Webserver actif lui-meme ne peut pas alimenter le Front, le panneau affiche Front non mis a jour.
Le temoin ne pousse jamais vers le Front et n’a besoin de rien de tout cela.
Frequence des instantanes
Pour garder son journal des modifications court, le cluster enregistre regulierement une copie complete de ses donnees et supprime le journal qui la precede. Sur une grande installation, augmentez le nombre de modifications entre deux copies : dans le panneau du cluster, sous Parametres avances et activite. Le panneau indique a quelle frequence cela correspond au rythme actuel. La valeur s’applique a tous les noeuds, sans redemarrage.
Voir aussi
- Demarrage rapide : cluster Webserver – les memes parametres, pas a pas
- Configuration du Webserver – les autres parametres de
webserver.json - Depannage – ce que signifient les avertissements du panneau