7 octobre 2024

Synchronisation des configurations avec Csync2

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/

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *