Dans un cluster de serveurs, il est important de s’assurer de la synchronisation des configurations des services. Plusieurs outils sont disponibles… Rsync, Unisson et celui dont je vais vous parler, Csync2.
I – Présentation
Tout d’abord, point important, cela ne peut fonctionner que si les configurations sont identiques (exit donc les MariaDB, par exemple, ou le fichier de configuration de chaque serveur fait référence aux autres serveurs). Bon, d’un autre coté, on touche rarement aux fichier de configuration de MariaDB…
Pour ma part, je m’en sers dans le cadre de mon cluster Web (ou mes deux serveurs Nginx tournent avec la même configuration) et ou je suis amené régulièrement à rajouter des sites, faire des tests, etc… De ce fait, l’usage d’un outil de synchronisation était un plus…
II – Installation
Sur l’ensemble des machines à synchroniser :
# apt-get install csync2
Ensuite, je vais considérer qu’une de mes machines est « Maitre », celle sur laquelle je ferais mes modifications de configuration et que les autres sont les « Esclaves ».
Sur le maître, on va générer une clé PSK :
master# csync2 -k /etc/csync2.key
Puis on va la copier sur le ou les autre(s) serveur(s) :
master# scp /etc/csync2.key root@noeud2:/etc
Pour information Csync2 peut utiliser le SSL pour la communication (avec création de certificat, etc..). Étant dans mon réseau local de machines virtuelles, je fais au plus simple: pas de ssl.
III – Configuration
Sur l’ensemble des serveurs, éditez le fichier /etc/csync2.cfg et remplissez le suivant le modèle suivant en adaptant bien sur selon vos besoins…
group moncluster { host serveur1; host serveur2; key /etc/csync2.key; include /etc/nginx; include /etc/php; exclude /etc/nginx/monfichier_a_exclure action { pattern /etc/nginx; pattern /etc/php; exec "service nginx reload"; exec "service php7.0-fpm reload"; logfile "/var/log/csync2.log"; do-local; } } nossl * *;
Notez qu’il existe d’autres options que vous pouvez utiliser dans le fichier de configuration (possibilité de backups, etc..). Referez vous au lien que je vous donne plus bas.
IV – Synchronisation
En ce qui concerne l’utilisation de cet outil, rien de plus simple. Une fois vos fichiers modifiés sur le master, une simple commande permet d effectuer la synchronisation sur les autres serveurs :
master# csync2 -xrv
Je vous l’avais dit que c’était simple !
V – Lien
Un site proposant de la documentation complémentaire, si besoin : http://oss.linbit.com/csync2/