Configuration particulière du serveur du Club

 

  • Chose importante à noter, les deux serveurs (clo et clo2) sont derrière un coupe-feu qui redirige les requêtes (http, smtp,ftp, etc.) vers l'adresse de service. Il est donc important que cette adresse soit toujours la même, car le coupe-feu ne sait pas si c'est clo ou clo2 qui est actif. D'où l'importance du transfert d'adresse de service grâce à Heartbeat. De plus, nous ne disposons que d'un seul onduleur (UPS)
  • Comme nous l'avons déjà dit, il y a 3 fichiers à configurer
  • Voir respectivement :

- http://www.linux-ha.org/ha.cf
- http://www.linux-ha.org/haresources
- http://www.linux-ha.org/authkeys

  • Le fichier /etc/ha.d/ha.cf
  • - logfacility local0    # inscription dans journal local
    - logfile /var/log/ha    # nom du fichier journal
    - keepalive 1    # intervalle entre les paquets (en sec.)
    - deadtime 10    # nb de sec. avant de constater la mort
    - Warntime 2    # ¼ à ½ du nb de sec. de deadtime
    - baud 19200    # vitesse de comm. entre les ports série
    - serial /dev/ttyS0    # le port du lien série
    - bcast eth1    # le lien ethernet (câble croisé entre les 2 serveurs)
    - auto_failback on    # off=actif/passif on=actif/actif
    - node clo clo2    # ordi maître, ordi esclave

  • Le fichier haresources :
  • Doit absolument être le même sur les deux serveurs, avec le nom du maître pour commencer, l'adresse de service et les services gérés par Heartbeat
  • - clo 123.456.2.2/24/eth0 named apache2 postfix courier-imapd courier-pop3d mailman vsftpd mysql

  • L'adresse 123.456.2.2 est un alias transféré d'un serveur à l'autre lorsque le maître n'est plus actif.
  • Le fichier authkeys :
  • - auth 1
    - 1 sha1 MotdePassePrisauhasardfc970c94efb

  • On aurait également pu utiliser 1 CRC, mais pour des raisons de sécurité, CRC n'est pas recommandé pour des connexions autres qu'un câble série et un câble ethernet croisé. Autrement dit, pour une connexion d'ordi à ordi, ce qui est notre cas, ce n'aurait pas été un problème.

 

Synchronisation des serveurs

 

  • Pour que clo2 soit à jour lorsqu'il doit prendre la relève de clo, il faut faire une synchronisation entre les deux. Il faut donc autoriser clo2 à aller chercher les fichiers nécessaires sur clo. Cela se fait à l'aide du fichier /etc/rsync.conf sur clo :
  • pid file = /var/run/rsyncd.pid
    max connections = 5
    use chroot = yes
    uid = nobody
    gid = nobody

    # Optionnel : restriction de l'accès à vos machines
    hosts allow = 123.456.2.1 123.456.1.4 123.456.2.4 123.456.1.6   # permettre seulement à certaines machines d'avoir accès
    hosts deny = *   # On empêche tous les autres

    [web]    # Module des pages Web du site
    path = /home/clo
    comment = Répertoire clo pour le site
    uid = clo   # ce paramètre prend la priorité sur le paramètre global (uid = nobody)

    [pool]    # Module d'un autre site
    path = /home/pool
    comment = Répertoire pool pour le site
    uid = pool

    [securinux1]    # Module d'un autre site
    path = /home/securinux
    comment = Répertoire securinux pour le site
    uid = securinux
    exclude = gallery/    # Ici on exclut un répertoire

    [mailman]    # Pour la synchronisation de la liste de diffusion
    path = /usr/local/mailman
    comment = Archives de Mailman
    uid = mailman

 

crontab sur clo2

 

  • Sur clo2, la synchronisation se fait à l'aide de crontab, avec la commande crontab -e qui ouvre un fichier. On place une tâche cron par ligne :
  • 30 5 * * * emerge sync
    31 2 * * * rsync -avz --delete 123.456.2.3::web /home/clo
    32 2 * * * rsync -avz --delete 123.456.2.3::securinux1 /home/securinux
    33 2 * * * rsync -avz --delete 123.456.2.3::pool /home/pool
    */5 * * * * rsync -avz --delete 123.456.2.3::mailman /usr/local/mailman

  • Les chiffres et les astérisques (*) signifient, de gauche à droite, la minute de l'heure, l'heure de la journée (sur 24 heures), le jour du mois, le mois de l'année et le jour de la semaine. L'astérisque signifie tous (toutes) les (minutes, heures, jours, mois, jours de la semaine).
  • Sur la première ligne, nous avons une fonction Gentoo (emerge sync) de synchronisation des métafichiers gérant les sources et les dépendances. Cette synchronisation se fait à la 30e minute de la 5e heure, tous les jours du mois, tous les mois et tous les jours de la semaine.
  • Sur la dernière ligne, Mailman se synchronise toutes les cinq minutes (*/5)
  • Les options -avz et --delete signifient :
  • a  archive (récursif et préserve les permissions, le propriétaire, le groupe, les "devices", le temps et les liens symboliques. Équivaut à rpogDtl)
    v  verbeux
    z  comprimer
    delete  supprimer les fichiers qui n'existent plus sur l'envoyeur

  • Voir man rsync et man crontab(1) et crontab(5) pour une foule d'autres possibilités.

Guy Lessard
Jean-Marc Vaillancourt
Club Linux Gatineau
28 mars 2006

Serveur en marche depuis 153 jours, 22 heures et 04 minutes