ZEBULONINFO

Toutes les procédures informatique

  • toutes les procécures

  • Aidez moi à faire vivre ce site


  • StatPress TopPosts

  • StatPress

    Visits today: 14 Connectés: 0

Install PABX

Publié par admin le Lundi 9. avril 2012

Bonjour à tous,

Voilà, je me donne l’opportunité de partager quelques connaissances afin de permettre aux intéressés de monter son propre PABX 100% Gratuit sous LINUX.

A quoi cela pourra bien vous servir ???
Monter une plateforme d’appels totalement gratuite (pour les PRO), jouer avec le SIP c’est à dire recevoir ces appels téléphoniques directement sur son pc portable peut importe ou vous vous trouvez tant qu’il y a internet en haut débit, appeler gratuitement toute la france et l’étranger (la liste des pays est limité), possibilité de créer plusieurs comptes et les partager à vos proches, si vous n’avez pas la téléphonie illimitée avec votre abonnement internet, vous pourrez passez vos appels directement via un compte SIP fournisseur (intégré dans votre abonnement) ou que l’on peut trouver sur internet (en cours de test avec voipbuster)… Peut-être voir avec une application comme « FRING » compatible avec un IPHONE (en cours de recherche d’infos viable) dans le but de recevoir des appels comme si c’était un fixe et en emmettre dans les même condition.
Bref tout ça dans le but de s’offrir des possibilités de téléphoner de n’importe vers un maximum de destination et GRATUITEMENT !!!!!
J’espère que vous comprendrez que chacune des possibilités énoncées ci-dessus sont à la portée de tout le monde et si vous avez des questions spécifiques à votre situation (fournisseur d’accès, materiel disponible….) et que vous voulez validez vos prérequis avant de commencer ce tutoriel, n’hésitez pas à me le faire savoir, je prendrai le temps de traiter le cas par cas !!!!!!
Enjoy!!!

—————————————————————————————-

En pré-requis :
- Un PC pas forcément puissant avec un disque dur de petite capacité et ensuite cela dépendra si vous faite de l’enregistrement donc il faudra penser à voir plus grand)
- Une version DVD ISO de LINUX CENT OS 5.2 Téléchargeable ici (plusieurs liens disponibles) :

http://centos.crazyfrogs.org/5.2/isos/i386/
http://mirrors.ircam.fr/pub/CentOS/5.2/isos/i386/
http://mirror.in2p3.fr/linux/CentOS/5.2/isos/i386/
http://ftp.ciril.fr/pub/linux/centos/5.2/isos/i386/
ftp://ftp.free.fr/mirrors/ftp.centos.org/5.2/isos/i386/
ftp://ftp.pasteur.fr/pub/computing/linu … isos/i386/
http://centos.cict.fr/5.2/isos/i386/

- Une FREEBOX (ou un autre opérateur internet qui propose et gère le SIP)
- Un ou plusieurs PC client à sur lequel on installera un softphone comme EyeBeam (X-lite Pro)
- Un ou plusieurs Téléphones SIP (je ne proposerai pas d’exemple concernant le type de téléphone et sa configuration associé mais je peux me pencher sur ces points à la demande)
- un switch

Et enjoy!!

———————————————————————————–
Etape 1:

Télécharger le système d’exploitation CENT OS 5.2 et le graver sur un DVD.
Démarrer le PC qui hébergera le système d’exploitation CENT OS et booter sur le DVD.
Pour mieux préparer ce genre d’installation je vous conseil de réunir quelques informations nécessaire au bon déroulement :
- Adresse IP : 192.168.20.254 (affecté une adresse IP en fonction de la disponibilité de votre réseau local)
- Masque de sous réseau : 255.255.255.0 (généralement c’est toujours le masque de sous réseau par défaut à la maison)
- Passerelle : 192.168.20.1 (la passerelle de votre routeur ADSL)
- serveur DNS : @ip fournit par votre fournisseur d’accès internet
- choisir un mot de passe root : choisir un mot de passe
- serveur NTP (Network Time Protocol) : choisissez en un ici : http://www.pool.ntp.org/zone/europe

A l’écran de démarrage, choisir d’installer CENT OS en mode graphique et valider en tapant « Entrée ».
Après un déroulement d’information cette fenêtre devrai appraître :

http://i210.photobucket.com/albums/bb115/rollerman75/centos1.jpg

Cliquez sur Next pour démarrer l’installation!!

http://i210.photobucket.com/albums/bb115/rollerman75/centos2.jpg

Choisir la langue que vous voulez, mais dans ma présentation, l’anglais sera choisi …. à vous de voir !!
Validez en cliquant sur Next.

http://i210.photobucket.com/albums/bb115/rollerman75/centos3.jpg

Choisissez le type de clavier en fonction de votre choix précédent.
Validez en cliquant sur Next.

http://i210.photobucket.com/albums/bb115/rollerman75/centos4.jpg

Cliquer sur « remove all partition option » et confirmer que vous souhaitez effectuer cette manipulation.
Ceci est l’équivalent du partitionnement sous Windows et permettra donc à CENT OS de supprimer toutes les partitions et données existantes.
Validez en cliquant sur Next.

http://i210.photobucket.com/albums/bb115/rollerman75/centos5.jpg

Cliquer sur « EDIT ».
Choisir l’option de configuration de la partie réseau et décocher les options comme indiqué sur la copie d’écran.
Dans le champs IPV4, entrez l’adresse IP que vous avez préalablement définit et si votre masque de sous réseau est 255.255.255.0, ajouté 24 dans le champs « Prefix netmask ».
Valider en cliquant sur OK.

http://i210.photobucket.com/albums/bb115/rollerman75/centos6.jpg

Entrez le hostname souhaité de votre machine et entrez les informations définit dans les prérequis, en l’occurence la passerelle de votre routeur ADSL et les adresse IP des serveurs DNS de votre fournisseur d’accès. Si vous ne les connaissez pas, vous pouvez les trouver en tapant ipconfig /all dans une fenêtre de commande.

Validez en cliquant sur Next.

http://i210.photobucket.com/albums/bb115/rollerman75/centos7.jpg

Choisissez la localisation ou sera installé ce serveur, laissez décocher « System Clock use UTC » et cliquez sur Next pour continuer.

http://i210.photobucket.com/albums/bb115/rollerman75/centos8.jpg

Renseigner un mot de passe pour l’accès root et cliquez sur suivant pour continuer.

http://i210.photobucket.com/albums/bb115/rollerman75/centos9.jpg

Nous allons maintenant attaquer la partie customisation pour n’installer que le strict nécessaire.
Assurez vous que tout est décoché et sélectionner « Customize Now » et validez en cliquant sur suivant.

http://i210.photobucket.com/albums/bb115/rollerman75/centos10.jpg

Cliquez sur la partie Application sur la fenêtre de gauche et sélectionner seulement le package « EDITOR ».
Ne cliquez pas sur Next !!

http://i210.photobucket.com/albums/bb115/rollerman75/centos11.jpg

Cliquez sur la partie Developpement sur la fenêtre de gauche et sélectionner les packages « Developpement Libraries et developpement Tools ».
Ne cliquez pas sur Next

http://i210.photobucket.com/albums/bb115/rollerman75/centos12.jpg

Cliquez sur la partie Servers sur la fenêtre de gauche et sélectionner le package « FTP server ».
Ne cliquez toujours pas sur Next

http://i210.photobucket.com/albums/bb115/rollerman75/centos13.jpg

Cliquez sur la partie Base System sur la fenêtre de gauche et sélectionnez le package « Base ».
Et vous pouvez maintenant cliquez sur Next.

http://i210.photobucket.com/albums/bb115/rollerman75/centos14.jpg

Cliquez sur Next si vous êtes sur d’avoir correctement suivi toutes les étapes précédentes, car en cliquant sur Next le formatage du disque dur et l’installation du système d’exploitation débuteront.

A la fin de ces étapes, un premier reboot aura lieu.
Nous allons nous occuper du firewall (pare-feu)

http://i210.photobucket.com/albums/bb115/rollerman75/centos15.jpg

Sélectionnez donc le champ « Firewall configuration » et lancer « Run Tool » pour configurer les options de pare-feu.

http://i210.photobucket.com/albums/bb115/rollerman75/centos16.jpg

Passez tous les champs sur « DISABLED » et validez en cliquant sur OK.
Cette option nous permettra d’éliminer tout risque de filtrage de port mais on pourra toujours activer le pare-feu si besoin à l’aide d’une commande.
Une partie Pare-feu (SERVICES IPTABLES) sera abordé plus tard.

Voilà, vous venez de finaliser la première étape de cette installation.!!!

——————————————————————————————–
Etape 2:
Assurer vous que vous êtes branché sur le switch ou le routeur de votre accès internet.
Vous avez deux possibilités pour configurer votre serveur :
- en local, directement sur la machine
- en remote avec un autre PC avec l’application putty que vous pouvez télécharger ici :

putty

Et pour vous connecter avec putty, lancer l’exécutable qui nécessite aucune installation.
Entrer l’adresse IP que vous avez affecter à la machine dans le champs « hostname or IP adress » et cliquez sur OPEN pour vous connecter.

http://i210.photobucket.com/albums/bb115/rollerman75/centos19.jpg

Au prompt, logguer vous avec le compte root et le mot de passe que vous avez renseigné plus haut et lancer la commande :

yum -y update

Cela lancera une mise à jour complète de votre OS.
Ca prend un certain temps.

——————————————————————————————-
Clock Synchronisation – Serveur NTP

On va s’occuper du serveur NTP.

A quoi sert un serveur NTP?? Allez voir ici : http://fr.wikipedia.org/wiki/Network_Time_Protocol

Pour le télécharger taper cette commande :

yum -y install ntp

Il est possible que la commande précédente ai déjà télécharger et installer ce package mais au cas ou, faite le.

Démarrer le service avec cette commande :

/etc/init.d/ntpd start

On va faire en sorte que ce service démarre automatiquement lorsque le serveur redémarre :

chkconfig ntpd on

Vérifier l’état du service :

service ntpd status

Arrêter et redémarrer le service :

service ntpd stop
service ntpd start
service ntpd restart

———————————————————————————-
Vérification de la configuration IP

A partir de maintenant nous allons vérifier que tous les paramètres mis en place sont valides, sinon cela ne sert à rien de continuer.

Commençons par vérifier la configuration IP de notre serveur en tapant cette commande :

ifconfig -a

http://i210.photobucket.com/albums/bb115/rollerman75/centos20.jpg

et la ligne ETH0 correspond à la configuration ethernet affectée à votre carte réseau.

Vérifier bien que l’inet adress correspond à l’adresse IP que vous avez sélectionné pour votre serveur.
Vérifier bien que le masque de sous réseau est correct (généralement c’est toujours 255.255.255.0)
Vérifier que le champ link est UP.

Si besoin de changer son adresse IP suite à une erreure, voici la commande pour le faire:

ifconfig eth0 <@IP>

Et vérifier bien la bonne prise en compte avec la commande précédente.

——————————————————————————————-
ASTERISK

Passons au téléchargement de quelques packages nécessaire avant de lancer l’installation de l’ASTERISK.
Tout d’abord C++ Compiler:

yum install gcc-c++

tapez ensuite cette commande :

yum -y install kernel-source kernel-devel bison openssl-devel libtermcap-devel ncursesdevel
sox

Ensuite l’IVR PHP CLI pour ceux qui veulent créer des scripts en php:

yum -y install php-cli

FTP server :

yum -y install vsftpd

Bien entendu par souci de sécurité, nous allons éditer le fichier de configuration du server FTP afin de ne pas autoriser les accès anonymes.
Pour se faire tapez cette commande:

nano /etc/vsftpd/vsftpd.conf

et soyez sur que les valeurs dans ce fichier correspondent à cela :

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES

validez en tapant sur la touche F2 et « y » pour confirmer les modifications.

On va faire en sorte que le serveur FTP démarre automatiquement quand le serveur boot :

chkconfig vsftpd on

On va maintenant télécharger l’ASTERISK, version 1.4.22.
Tout d’abord on va se mettre dans le dossier suivant :

cd /usr/src

et ensuite tapez cette commande pur lancer le téléchargement:

wget http://downloads.digium.com/pub/asteris … .22.tar.gz

Quand le téléchargement sera terminé, tapez cette commande pour dézipper le fichier:

tar xvfz asterisk-1.4.21.2.tar.gz

Nous allons passer à la compilation et à l’installation de l’ASTERISK.
On va se mettre à la racine du dossier dézipper en tapant cette commande :

cd asterisk-1.4.22

et lancer cette commande :

./configure

quand il vous redonnera la main, tapez cette commande :

make install

et pour finir tapez ceci :

make samples

Et pour terminer l’installation, on va faire en sorte que ASTERISK démarre automatiquement quand le serveur boot.
Pour se faire, tapez ces deux commandes:

cp /usr/src/asterisk-1.4.22/contrib/init.d/rc.redhat.asterisk /etc/init.d/asterisk

chkconfig asterisk on

On démarre le service ASTERISK:

service asterisk start

Vous pouvez vérifier s’il est bien démarré en tapant cette commande :

service asterisk status

Voilà pour la partie installation et compilation de l’application ASTERISK.

—————————————————————————————————
CONFIGURATION DE L’ASTERISK AVEC UNE FREEBOX

Première étape: Activation du compte SIP chez Free.

Et oui, vous avez un compte SIP bien au chaud dans votre interface « Mon Compte > Téléphone » qui n’attend qu’à être activé.
Voila la procédure pour le faire :

Connectez vous à « Mon compte » en passant par le site www.free.fr

http://i210.photobucket.com/albums/bb115/rollerman75/centos22.jpg

Allez dans le service « Téléphone »

http://i210.photobucket.com/albums/bb115/rollerman75/centos23.jpg

Et cliquez sur le lien « Gestion de mon compte SIP »

http://i210.photobucket.com/albums/bb115/rollerman75/centos24.jpg

Sur cette fenêtre noté que votre identifiant et votre nom d’utilisateur sont identiques et correspondent à votre numéro FREE en 09XXXXXXXX.
Spécifier un mot de passe
Séléctionner le champ « Rediriger les appels entrants vers mon compte SIP »
Cocher la case en face de « Service Activé »
Et valider en cliquant sur « enregistrer »

Seconde partie : configuration d’ASTERISK

Nous allons éditer certains fichiers pour adapter la configuration de l’ASTERISK avec FREE.
Pour se faire, vous devez utiliser PUTTY pour vous connecté et lorsque vous êtes logguer tapez la commande suivante pour vous placer dans le dossier ASTERISK :

cd /etc/asterisk

Nous allons maintenant éditer le fichier sip.conf grâce à cette commande :

nano sip.conf

http://i210.photobucket.com/albums/bb115/rollerman75/centos21.jpg

tout en bas du fichier, vous allez ajouter ce qui suit :

[freephonie_outbound]
type = peer
allow = all
host = freephonie.net
secret = mot de passe renseigné dans votre compte free (vu plus haut)
fromuser = identifiant de votre compte free, logiquement votre numéro free commençant par 09XXXXXXXXXX
username = identifiant de votre compte free, logiquement votre numéro free commençant par 09XXXXXXXXXX
qualify = yes
fromdomain = freephonie.net
context = freephonie

[freephonie.net]
type = peer
context = fromfree
host = freephonie.net
qualify = yes
allow = all
deny = 0.0.0.0/0.0.0.0
permit = 212.27.52.5/255.255.255.255

Nous allons ensuite créer deux utilisateurs à ajouter juste en dessous :

[5000]
type = friend
username = 5000
secret = 1234
host = dynamic
context = freephonie
nat = yes
canreinvite = yes
allow = all

[5001]
type = friend
username = 5001
secret = 1234
host = dynamic
context = freephonie
nat = yes
canreinvite = yes
allow = all

validez sur F2 et confirmer avec Y (yes)

vous reviendrez sur le prompt et la vous lancez cette commande pour modifier le fichier extensions.conf :

nano extensions.conf

et tout en bas de ce fichier tapez ce qui suit :

[freephonie]
exten => _01XXXXXXXX,1,Dial(SIP/${EXTEN}@freephonie_outbound,60,r)
exten => _02XXXXXXXX,1,Dial(SIP/${EXTEN}@freephonie_outbound,30,r)
exten => _03XXXXXXXX,1,Dial(SIP/${EXTEN}@freephonie_outbound,30,r)
exten => _04XXXXXXXX,1,Dial(SIP/${EXTEN}@freephonie_outbound,30,r)
exten => _05XXXXXXXX,1,Dial(SIP/${EXTEN}@freephonie_outbound,30,r)
exten => _06XXXXXXXX,1,Playback(vm-goodbye)

[fromfree]
exten => s,1,Dial(SIP/5000)

validez sur F2 et confirmer avec Y (yes)

Au prompt, vous tapez cette commande pour vous rendre dans la console CLI d’asterisk :

asterisk -r

et vous lancer des reload sur les deux fichiers modifier (c’est une étape qu’il faudra faire systématiquement si vous modifier autre chose dans les deux fichiers sip.conf et extensions.conf)

tapez ceci :

extensions reload

et

sip reload

ensuite tapez exit pour sortir de ce mode et encore exit pour coupez la connexion de PUTTY avec le serveur sous LINUX.

troisième partie : configuration de EYEBEAM (XLITE PRO) SIP Softphone

Vous le trouverez en téléchargement ici :

http://wawa-mania.eu/viewtopic.php?id=144548

Lancez le et nous allons le configurer pour l’utilisateur 5000.

Faite un clic droit sur l’écran de Eyebeam et choisissez OPTIONS
En bas à gauche, cliquez sur advanced et adapter votre configuration aux copies d’écran :

http://i210.photobucket.com/albums/bb115/rollerman75/xlite1.jpg
http://i210.photobucket.com/albums/bb115/rollerman75/xlite2.jpg
http://i210.photobucket.com/albums/bb115/rollerman75/xlite3.jpg
http://i210.photobucket.com/albums/bb115/rollerman75/xlite4.jpg

Validez en cliquant sur OK.

Faite un autre clique droit sur l’écran de Eyebeam et choisissez SIP Account Settings
et sur la fenêtre qui apparaîtra cliquez sur « ADD » et adapter votre configuration aux copies d’écran :

http://i210.photobucket.com/albums/bb115/rollerman75/xlite5.jpg
http://i210.photobucket.com/albums/bb115/rollerman75/xlite6.jpg
http://i210.photobucket.com/albums/bb115/rollerman75/xlite7.jpg

Validez en cliquant sur Appliquer et OK.

Vous avez plus qu’à passer un appel de EyeBeam et Enjoy !!!!

Pour tout problème de fonctionnement, pour toute demande spécifique, n’hésitez pas à me contacter par MP ou sur ce post pour en faire profiter tout le monde.!!!!!!!!!!!!!!!!!!!!!

—————————————————————————————————
CONFIGURATION DE L’ASTERISK AVEC TOUS LES AUTRES FOURNISSEUR D’ACCES

Petit cadeau exclusif pour les wawamanien !!!

Voici un petit tutoriel complémentaire à celui ci-dessus qui permet d’appeler gratuitement sans avoir le téléphone chez soi et sans freebox!!
Vous pouvez coupler cette configuration avec celle de FREE et permettre d’avoir plusieurs accès vers l’extérieur.

Tout d’abord voici la liste des destinations offert avec cette configuration :

Andorre
Australie
Autriche
Belgique
Canada
Chypre
Corée Du Sud
Danemark
Espagne
Estonie
Etats-unis (+mobile)
Finlande
France
Guam
Hongkong (+mobile)
Hongrie
Irlande
Islande
Israël
Italie
Japon
Luxembourg
Malaisie
Monaco
Norvège
Nouvelle-zélande
Panama
Pays-bas
Porto Rico (+mobile)
Portugal
République Tchèque
Russie [moscow]
Russie [st Petersburg]
Singapour
Suisse
Taïwan

Pas mal quand même !!!!!

Bien entendu le but est de téléphoner gratuitement à partir de chez soi !!!!!

1ère étape :

Créer un compte chez voipbuster ici : http://www.voipbuster.com/fr/

Il faut savoir que ce compte vous limitera à 60 minutes d’appels gratuites vers les destinations citées ci-dessus!!
Au bout de ce crédit offert, vous pouvez créer un autre compte et repartir pour 60 minutes………….. chacun sa technique.
Vous trouverez toutes les explications relatif à la gratuité des appels sur le site dans cette section : http://www.voipbuster.com/fr/free.html
Une partie des explications est en anglais !!! Si besoin je traduirai (me demander).

Lorsque vous vous êtes inscrit, vous gardez de côté vos identifiants qui vous permettrons de configurer Asterisk pour passez vos appels à travers ce compte (sans utilisez l’application propre à VoipBuster).

OPENSSH:

Voila, un bon tutoriel en vidéo + présentation PowerPoint d’une mise en place d’un serveur + client avec OPENSSH.
Je dirai sans détour, que l’intégration de ce genre de protocole devient incontournable.

Voici le lien pour le cours :

http://www.authsecu.com/cours-formation … en-ssh.php

Publié dans LINUX | Pas de commentaire »

serveur en cluster DRBD Debian

Publié par admin le Mercredi 25. avril 2012

Dans cette section, nous allons voir les différentes étapes nécessaires à la mise en place d’un cluster haute Disponibilité avec les solutions DRBD et Heartbeat.


Installation des logiciels HA

Pré-requis

Pour la réalisation d’une infrastructure haute disponibilité, nous utiliserons une distribution Linux DEBIAN Sarge. Cette distribution, relativement simple à prendre en main, est basée sur le système de paquets précompilés .DEB. Par ailleurs, la commande apt-get nous assure une installation simplifiée de tous les programmes indispensables à la mise en place de ce type de solution. Voici un récapitulatif du matériel et des logiciels utilisés pour notre infrastructure HA:

  • Matériel : Notre cluster est constitué de deux serveurs aux performances comparables mais pas forcément identiques. Le premier étant en mode actif, c’est-à-dire le serveur maître, et le second en mode passif ou esclave. C’est ce dernier qui fera office de relais au cas où le maître présente un dysfonctionnement. Ces deux serveurs nécessitent deux équipements réseau chacun. La première carte Ethernet étant reliée en RJ45 au switch du réseau local, et une seconde carte Ethernet gigabit dédiée à l’interconnexion entre les deux serveurs, pour permettre le transfert des données en temps réel et le déclenchement du basculement entre les serveurs en cas de panne ou de rétablissement d’un des deux.
  • Système : Linux Debian Sarge basée sur un kernel 2.4.x
  • Logiciels : DRBD v0.7 / Heartbeat v1.2 / Mon v0.99.

Remarques:

  • La distribution Linux debian étant basée sur un système de package de type DEB, nous utiliserons les versions pré-compilées pour i386.
  • Les dépendances sont satisfaites automatiquement lors de l’avec apt-get (sauf pour le programme Mon qui n’est pas dans l’arbre de packages de Debian. Il devrait donc être installé manuellement.
  • Il est bien entendu indispensable que votre machine dispose d’un accès à Internet.

Avant toutes choses, n’oubliez pas de mettre à jour votre liste de packages afin de vous assurer de récupérer la dernière version stable des logiciels.

# apt-get update

Installation de DRBD

Comme nous l’avons dit auparavant, DRBD permet de faire du RAID 1 par le réseau. C’est en partie grâce à ce mirroring que Heartbeat pourra mettre à disposition des services haute disponibilité.

DRBD s’installe en tant que module. Nous aurons donc besoin de récupérer les sources puis de les compiler. Voici la liste des commandes pour réaliser cette procédure (à réaliser sur les deux serveurs).

# apt-get install kernel-image-$(uname -r) kernel-headers-$(uname -r) build-essential
# apt-get install drbd0.7-utils drbd0.7-module-source
# apt-get install dpkg-dev kernel-package ncurses-dev patchutils
# cd /usr/src
# tar xfzv drbd0.7-tar.gz
# apt-get install gcc-3.4
# cd /usr/src/kernel-headers-2.4.27-2-386
# module-assistant

Une fois module-assistant lancé, allez dans SELECT, puis sélectionnez le module drbd0.7. Terminez en faisant un BUILD puis un INSTALL.

module assistant DRBD

« Image tirée du site http://www.supinfo-projects.com/fr/2006/ha%5Ffr/ »

Le module est prêt à être lancé. Utilisez la commande modprobe pour le charger.

# modprobe drbd
            drbd:initialised. Version: 0.7.11 (api:77/proto:74)
            drbd: SVN Revision: 1807 build by lars@barkeeper1, 2005-06-07 19:33:30
            drbd: registered as block device major 147

Enfin, utilisez la commande lsmod pour vérifier que le module est bien chargé. Si vous obtenez ce type de résultat, cela signifie que tout s’est déroulé comme il se doit.

# lsmod | grep drbd
     drbd         144992       0

Installation de Heartbeat

Comme nous l’avons vu précédemment, Heartbeat constitue le lien permettant aux 2 serveurs de se prendre mutuellement le pouls. Heartbeat va nous permettre de former un cluster à partir des 2 machines. Chaque machine est appelée noeud du cluster.

L’installation de Heartbeat sur un système Debian est relativement simple, le paquet se trouvant dans les dépôts standards. La commande suivante doit être lancée sur les 2 machines afin d’installer le programme Heartbeat.

# apt-get install heartbeat

Heartbeat s’installe en tant que service. Vous obtiendrez une erreur à la fin de cette installation vous informant que le fichier ha.cf n’est pas présent. Ceci est normal et sera corrigé un peu plus bas.

Installation de Mon

Heartbeat surveille l’état du système mais pas celui des services. C’est ici qu’intervient Mon. Mon n’est pas dans l’arbre de paquets Debian. Il nous faudra donc l’installer manuellement. Les étapes suivantes sont encore une fois à effectuer sur les deux serveurs.
Récupérez le package Mon à l’adresse suivante : http://www.kernel.org/software/mon/. Téléchargez le dans /etc/ha.d puis exécutez les commandes suivantes pour l’installer.

# cd /etc/ha.d
# tar xzvf mon-0.99.2.tar.gz
# mv mon-0.99.2.tar.gz mon

De plus, Mon requiert quelques modules Perl externes. Vous pouvez utiliser votre CPAN (Comprehensive Perl Archive Network) habituel pour récupérer ces modules où utiliser la liste de liens ci-dessous.

Décompressez les archives avec la commande tar xvzf puis installez les modules en suivant la procédure suivante dans chacun des dossiers crées.

# perl Makefile.pl
# make && make install

Les dépendances de Mon sont maintenant installées. Nous allons maintenant nous intéresser à la configuration de ces services.

Configuration de DRBD

Préparation du système

Il nous faut maintenant choisir quelle partition sera dupliquée sur les 2 machines. Dans notre exemple, nous ferons le mirroring de la partition /home. Avant de commencer, vérifiez l’existence de la partition dans /etc/fstab afin d’identifier le volume correspondant à /home.

# cat /etc/fstab# perl Makefile.pl 

affichage tronqué
# /dev/hda6 /home  /ext3  defaults
affichage tronqué

Le volume correspondant à /home est donc /dev/hda6. Nous en aurons besoin plus tard. Il nous faut maintenant démonter cette partition et vérifier qu’elle est bien démontée.

# umount /home
# mount

Drbd.conf

Il existe 2 méthodes pour configurer DRBD. Directement en ligne de commande, ou par l’intermédiaire d’un fichier de configuration. Nous utiliserons ici la 2ème méthode. Commencez par créez le fichier /etc/drbd.conf si celui-ci n’existe pas encore. Voici le contenu du fichier de configuration de drbd utilisé dans notre exemple.

# déclaration du cluster
resource drbd {

  # protocole utilisé (voir plus bas)
  protocol C;

  # vitesse de transfert des données
  syncer {
     rate 100M;
     group 1;
}
  on Serv-maître {

     # peripherique drbd
    device     /dev/drbd0;

     #volume à synchroniser
    disk       /dev/hda6;

     # adresse ip du noeud et port
    address    192.168.0.2:7788;

     # emplacement des méta-données
    meta-disk  internal;
  }

  # même procédure
  on Serv-Esclave {
    device    /dev/drbd0;
    disk      /dev/hda6;
    address   192.168.0.3:7788;
    meta-disk internal;
 }
}

Nous utilisons ici le protocole C pour assurer une haute disponibilité maximale. Pour rappel, DRBD permet d’effectuer la transmission des données selon 3 protocoles. Reportez vous à la section principe pour plus d’informations concernant ces 3 protocoles. Remarque : le fichier de configuration doit être identique sur les 2 noeuds.

Synchronisation des noeuds

Nous allons maintenant définir Serv-maître comme étant le noeud maître de notre cluster. Ceci s’effectue avec la commande suivante :

# drbdadm primary all
            drbd0: Creating state block
            drbd0: resync bitmap: bits=943172 words=29476
            drbd0: size = 3684 MB (3772688 KB)
            drbd0: Assuming that all blocks are out of sync
            drbd0: 3772688 KB now marked out-of-sync by on disk bit-map.
            drbd0: drbdsetup 10872: cstate Unconfigured --> StandAlone

La synchronisation débute. Pour suivre l’évolution de la synchronisation vous pouvez utiliser la commande suivante.

# watch -n 5 cat /proc/drbd

L’état de la synchronisation sera affiché toutes les 5 secondes. Une fois la synchronisation terminée, le noeud primaire doit apparaître comme Primary et Consistent. Il faut ensuite formater le périphérique drbd puis le monter.

# mke2fs -j /dev/drbd0
# mount /dev/drbd0 /home

Remarque : dans le cas où l’on voudrait accéder aux données à partir du serveur secondaire, la partition dupliquée doit avant tout être démontée et le serveur primaire passé à l’état secondaire.
Nous verrons par la suite comment automatiser cette procédure avec Heartbeat.

Configuration de Heartbeat

Heatbeat agit comme init pour lancer et arrêter les services. Par défaut, les fichiers de configuration de Heartbeat n’existent pas, il faut les créer dans le dossier /etc/ha.d et sont au nombre de 3 et doivent être identiques sur les 2 serveurs.

  • Ha.cf : Configuration générale.
  • Haresources : les ressources que Heartbeat devra gérer.
  • Auth.keys : méthode d’encryption utilisée pour la communication.

Ha.cf

Ce fichier définit les paramètres généraux de Heartbeat.

# Emplacement des messages de debug
debugfile /var/log/ha-debug

#  Autres messages
logfile /var/log/ha-log

#  Nombre de secondes entre chaque battements
keepalive 2

#  Temps avant qu'un noeud soit declare mort
deadtime 10

#  Port utilise pour la communication en UDP
udpport 694

# Interface utilisée
bcast eth0

# Récuperation automatique des ressources si les 2 serveurs
# sont à nouveau opérationnels
auto_failback on

#  Les noeuds de notre cluster
node Serv-maître
node Serv-Esclave

Haresources

Ce fichier définit les services dont heartbeat devra gérer les ressources. Ainsi dans notre exemple, nous aurions :

Serv-Esclave 192.168.0.4 apache2 mysql

Pour que heartbeat sache qu’il travaille sur un environnement mirroré avec DRBD, nous devons le lui indiquer dans le fichier haresources afin qu’en cas de panne, le serveur secondaire devienne primaire et puisse monter le volume drbd. Notre fichier devient donc :

Serv-Esclave 192.168.0.4 Filesystem::/dev/drbd0::/home::ext3 apache2 mysql

L’ajout de Filesystem::/dev/drbd0::/home::ext3 précise à Heartbeat où est située la partition DRBD, où la monter et quel est son système de fichier.

Authkeys

Ce fichier permet de sécuriser les échanges entre les 2 machines. Il définit la méthode d’encryption utilisée. Trois modes d’authentification sont disponibles :

  • crc
  • md5
  • sha1
# auth identifiant
auth 1

# identifiant méthode utilisée
1 crc

Dans notre exemple, une authentification crc est suffisante du fait d’une liaison dédiée. Veillez à appliquer les permissions adéquates sur ce fichier de sorte que seul l’utilisateur root puisse y accéder (un mask de 0600 est fortement recommandé). Il ne reste plus qu’à démarrer Heartbeat avec la commande suivante :

/etc/init.d/heartbeat start

Configuration de Mon

Script de démarrage

Nous allons maintenant voir comment configurer la surveillance des services sur les serveurs avec Mon. Tout d’abord, nous allons avoir besoin d’un script permettant à Mon de gérer l’état de Heartbeat, permettant ainsi un passage des ressources en cas de non réponse d’un service. Le dossier mon.alert contient un ensemble de scripts permettant à Mon de générer des alertes en cas de défaillance des services.
Créez le fichier ha-up-down.alert dans /etc/ha.d/mon/mon.alert.

#!/bin/bash

# arrêt/démarrage du service heartbeat
HEARTBEAT="/etc/rc.d/init.d/heartbeat"
if [ "$9" = "-u" ]; then
       $HEARTBEAT start
else
       $HEARTBEAT stop
Fi

# envoi d'un mail aux administrateurs (argument passé par mon.cf)
/etc/ha.d/mon/alert.d/mail.alert $*

Mon.cf

Ensuite, créez le fichier mon.cf dans /etc/ha.d/mon. Ce fichier contient la liste des services que « mon » doit surveiller et les actions résultantes de divers évènements. L’exemple suivant montre comment surveiller l’état d’un serveur http et basculer les ressources en cas de non réponse.

# emplacement des fichiers de configuration/d'alerte/logs
cfbasedir   = /etc/ha.d/mon/etc
alertdir    = /etc/ha.d/mon/alert.d
mondir      = /etc/ha.d/mon/mon.d
statedir        = /etc/ha.d/mon/state.d
logdir = /var/log/

# type d'authentification
authtype = getpwnam

# le serveur à surveiller
hostgroup server 127.0.0.1

# les services à surveiller sur le serveur
watch server
    service http
        interval 30s
        monitor http.monitor
        period wd {Mon-Sun}

# les actions en cas de panne/retour à la normale
        alert ha-up-down.alert -S "service httpd down !" \
            administrateur@domaine.com
        upalert mail.alert -S "service httpd up !" \
                administrateur@domaine.com

# délai entre chaque alerte
        alertevery 600s

Vérification du fonctionnement du cluster

Enfin, démarrez « mon » avec la commande suivante :

/etc/ha.d/mon/mon

Remarque : Il s’agit ici d’un test. Il est bien entendu possible et recommandé de spécifier d’autres scripts à la place de celui que nous avons créé. Le passage des ressources étant la méthode la plus radicale, un rechargement ou un redémarrage du/des service(s) posant problème peut s’avérer approprié avant d’effectuer une bascule.
Notre infrastructure haute disponibilité est maintenant prête. Pour tester celle-ci, il nous suffira de débrancher le câble réseau reliant les 2 serveurs ou bien d’éteindre le serveur primaire. Au bout de quelques secondes, le fichier ha.log du serveur secondaire affichera des alertes et la prise de relais s’effectuera.

# tail -f /var/log/ha.log
affichage tronqué
heartbeat: ... WARN: node master: is dead
heartbeat: ... info: Link master:eth0 dead.
heartbeat: ... info: Running /etc/ha.d/rc.d/status status
heartbeat: ... info: Running /etc/ha.d/rc.d/ifstat ifstat
heartbeat: ... info: Running /etc/ha.d/rc.d/ifstat ifstat
heartbeat: ... info: Taking over resource group 172.17.10.30
heartbeat: ... info: Acquiring resource group: master 192.168.0.2 apache2 mon
affichage tronqué

Publié dans LINUX | Pas de commentaire »