Posts tagged serveur

[Debian/Ubuntu] Installer Etherpad Lite

0

Etherpad Lite est un formidable outil collaboratif permettant de travailler à plusieurs sur un document texte, que vous connaissez peut-être déjà sous le nom de Framapad, qui est une installation d’Etherpad Lite gérée par l’association Framasoft. Dans la continuité de notre démarche d’auto-hébergement, nous avons voulu héberger une instance d’Etherpad Lite sur un de nos serveurs.

Il existe deux versions d’Etherpad : une « Lite » et une non-« Lite ». La version non-« Lite », plus ancienne, était écrite en Scala, et la version « Lite » est la réécriture d’Etherpad en JavaScript (avec Node.js), plus légère que la version originale. Nous allons donc dans ce tutoriel aborder l’installation de la version « Lite » d’Etherpad.

1. Installation de Node.js

Node.js est un environnement javascript plutôt bien adapté à des applications web. Etherpad Lite requiert une version particulière : la v0.11.16, que nous allons nous empresser (!) de compiler.

On va commencer à installer quelques dépendances qui nous serviront tout au long de ce tutoriel :

sudo apt-get install gzip git curl python libssl-dev pkg-config build-essential

Puis on va télécharger les sources :

cd /tmp
 wget http://nodejs.org/dist/v0.11.16/node-v0.11.16.tar.gz
 tar -xzvf node-v0.11.16.tar.gz
 cd node-v0.11.16

Et on va enfin compiler Node :

./configure
 make
 sudo make install

2. Installation de MySQL

On va aller plus loin dans la configuration de notre Etherpad Lite, et nous allons faire en sorte qu’il utilise une base de donnée MySQL pour stocker ses données.

On commence par installer leur serveur MySQL :

sudo apt-get install mysql-server

Lors de l’installation, vous allez devoir renseigner un mot de passe root pour votre base de donnée. Gardez-le précieusement de côté, on va en avoir besoin tout de suite pour se connecter à la base de donnée :

mysql -u root -p

Il faut taper son mot de passe pour arriver à un invite de commande MySQL. On va ensuite créer une base de donnée dédiée à Etherpad Lite, et attribuer les privilèges de cette base de donnée à notre utilisateur etherpad :

create database `etherpad-lite`;
 grant all privileges on `etherpad-lite`.* to 'etherpad'@'localhost' identified by '*MOT DE PASSE SQL ETHERPAD*';

Remplacez bien entendu *MOT DE PASSE SQL ETHERPAD* par un mot de passe de votre choix, si possible différent du mot de passe root pour des raisons de sécurité.

3. Installation d’Etherpad Lite

On va commencer par créer un utilisateur séparé pour Etherpad Lite. Vous noterez l’option « –disabled-login », qui permet de désactiver toute connexion directe à cette session pour des raisons de sécurités

sudo adduser --disabled-login --gecos 'Etherpad' etherpad

On va s’y connecter :

cd /home/etherpad
sudo su - etherpad -s /bin/bash

On télécharge les sources via Git :

git clone git://github.com/ether/etherpad-lite.git

On va ensuite changer quelques réglages :

cd etherpad-lite
cp settings.json.template settings.json
nano settings.json

Il faut changer l’IP de l’hôte :

"ip": "0.0.0.0",

par

"ip": "127.0.0.1",

Et aussi supprimer les paramètres de base de donnée actuels :

"dbType" : "dirty",
//the database specific settings
"dbSettings" : {
  "filename" : "var/dirty.db"
},

pour les remplacer par :

"dbType" : "mysql",
"dbSettings" : {
  "user" : "etherpad",
  "host" : "localhost",
  "password": "*VOTRE MOT DE PASSE MYSQL*",
  "database": "etherpad-lite"
},

4. Création des scripts de démarrage

Nous allons créer le script de démarrage qui vous permettera de lancer etherpad à l’allumage du serveur, mais aussi de l’arrêter et de le redémarrer facilement.

On fait un sudo nano /etc/init.d/etherpad, et on y insère le code suivant :

#!/bin/sh

### BEGIN INIT INFO
# Provides: etherpad-lite
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts etherpad lite
# Description: starts etherpad lite using start-stop-daemon
### END INIT INFO

PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/node/bin"
LOGFILE="/var/log/etherpad.log"
EPLITE_DIR="/home/etherpad/etherpad-lite"
EPLITE_BIN="bin/run.sh"
USER="etherpad"
GROUP="etherpad"
DESC="Etherpad"
NAME="etherpad"

set -e

. /lib/lsb/init-functions

start() {
 echo "Starting $DESC... "

 start-stop-daemon --start --chuid "$USER:$GROUP" --background --make-pidfile --pidfile /var/run/$NAME.pid --exec $EPLITE_DIR/$EPLITE_BIN -- $LOGFILE || true
 echo "done"
}

#We need this function to ensure the whole process tree will be killed
killtree() {
 local _pid=$1
 local _sig=${2-TERM}
 for _child in $(ps -o pid --no-headers --ppid ${_pid}); do
 killtree ${_child} ${_sig}
 done
 kill -${_sig} ${_pid}
}

stop() {
 echo "Stopping $DESC... "
 while test -d /proc/$(cat /var/run/$NAME.pid); do
 killtree $(cat /var/run/$NAME.pid) 15
 sleep 0.5
 done
 rm /var/run/$NAME.pid
 echo "done"
}

status() {
 status_of_proc -p /var/run/$NAME.pid "" "etherpad" && exit 0 || exit $?
}

case "$1" in
 start)
 start
 ;;
 stop)
 stop
 ;;
 restart)
 stop
 start
 ;;
 status)
 status
 ;;
 *)
 echo "Usage: $NAME {start|stop|restart|status}" >&2
 exit 1
 ;;
esac

exit 0

On met les bonnes permissions et on met le script en démarrage automatique :

chmod +x /etc/init.d/etherpad
update-rc.d etherpad defaults

5. Installation de Nginx, et configuration en reverse proxy

J’utiliserai Nginx et non Apache dans ce tutoriel en raison de sa plus grande simplicité. Nginx va nous servir de reverse proxy, ce qui nous permettera d’associer plusieurs noms de domaines à notre adresse IP et d’avoir des logs d’accès.

On commence par installer le paquet de Nginx :

sudo apt-get install nginx

On crée un certificat SSL, pour permettre une utilisation de HTTPS :

sudo mkdir /etc/nginx/ssl
cd /etc/nginx/ssl
sudo openssl genrsa -des3 -out etherpad.key 2048
sudo openssl req -new -key etherpad.key -out etherpad.csr
sudo cp etherpad.key etherpad.key.org
sudo openssl rsa -in etherpad.key.org -out etherpad.key
sudo openssl x509 -req -days 365 -in etherpad.csr -signkey etherpad.key -out etherpad.crt

Et enfin on crée le fichier de description de l’hôte virtuelle pour Etherpad Lite, en faisant un sudo nano /etc/nginx/sites-enabled/etherpad, en y tapant les lignes de configurations suivantes :

server {
  listen 443 ssl;
  server_name *NOM DE DOMAINE*;

  access_log /var/log/nginx/etherpad.access.log;
  error_log /var/log/nginx/etherpad.error.log;

  ssl_certificate /etc/nginx/ssl/etherpad.crt;
  ssl_certificate_key /etc/nginx/ssl/etherpad.key;

  location / {
    proxy_pass http://localhost:9001/;
    proxy_set_header Host $host;
    proxy_buffering off;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
  }
}

server {
  listen 80;
  server_name *NOM DE DOMAINE*;

  access_log /var/log/nginx/etherpad.access.log;
  error_log /var/log/nginx/etherpad.error.log;

  location / {
    proxy_pass http://localhost:9001;
    proxy_set_header Host $host;
    proxy_buffering off;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
  }
}

map $http_upgrade $connection_upgrade {
  default upgrade;
  '' close;
}

N’oubliez pas d’inscrire au bon endroit le nom de domaine que vous souhaitez associer à votre installation d’Etherpad.

Et pour finir, nous pouvons recharger la configuration de Nginx :

sudo service nginx reload

Conclusion

L’installation d’Etherpad Lite est un processus long et un peu difficile pour un initié, mais permet une installation solide : notre installation est en route depuis plus de 2 mois, sans nécessiter beaucoup de maintenance.

En cas de soucis, le canal IRC #etherpad-lite-dev sur Freenode est disponible pour répondre à toutes vos questions.

[XiVO] SCCP et provisioning sur téléphones non supportés et DHCP désactivé (MàJ des greffons)

3

Va falloir penser à contacter WordPress pour mettre des titres de 1000 caractères tant je traite de cas particuliers…

Bonjour tout le monde !

Encore un cas ultra particulier avec XiVO. Comme d’habitude, je vous explique.

Préambule

Cisco 7941Nous avons l’immense joie d’utiliser au quotidien XiVO, une solution de téléphonie IP open source de qualité, performante et complète. Ses développeurs sont très sympa et répondent à toutes nos questions. Heureusement, car nous avons l’indélicatesse et le mauvais goût d’infliger à notre valeureux serveur la gestion de téléphones Cisco IP Phones 7900 Series, dont le fonctionnement est presque aussi obscur à comprendre que la physique quantique, l’intérêt en moins.

Cependant nous aimons beaucoup XiVO, et nous aimons beaucoup nos téléphones et je me sentirai comme une âme en peine si je devais me passer d’un de ces bidules (dont nous avons possédé plus d’un quarantaine).

Dans la suite de cet article, lorsque je parle de téléphone Cisco IP Phone 794x (prévus pour gérer jusqu’à deux lignes), comprenez que c’est valable également pour les modèles 796x (qui eux sont prévus pour gérer jusqu’à six lignes). Il est important de bien comprendre également la différence entre l’enregistrement (le fait qu’un téléphone sache se connecter au serveur pour passer des appels) et l’approvisionnement (ou provisioning, soit le fait qu’un téléphone reçoive ses paramètres depuis le serveur). De plus, il serait de bon ton pour parvenir à effectuer les manipulations que vous sachiez utiliser un peu la ligne de commande Linux, même si je vais tenter d’être le plus didactique possible. De plus les manipulation ont été effectuées avec la version 15.02 et 15.03 de XiVO. Elles devraient fonctionner avec des versions plus anciennes ou plus récentes.

Entrons donc dans le vif du sujet.

1. L’existant

  • Nous avons des téléphones Cisco IP Phone 7940 et 7960, ainsi que des 7941 tous supportés mais nous commençons la mise à jour du parc avec des 7945, plus modernes, et également des 7970. Ces modèles ne sont pas supportés par XiVO. Les Cisco ne peuvent être provisionnés qu’en SCCP donc nous les utiliserons tous sur ce protocole, sur nos différents sites à travers nos VPN.

Explication: Pour qu’un modèle puisse s’enregistrer, il faut recompiler le module xivo-libsccp en précisant les modèles à supporter en éditant trois fichiers. C’est rapide à faire et c’est très simple en se connectant au serveur en SSH. Si on ne le fait pas, les modèles non supportés ne pourront qu’afficher « Enregistrement » indéfiniment et seront rejetés par le serveur, les laissant inopérants.

  • Nous avons fait le choix de complètement nous passer d’un VLAN dédié à la téléphonie ainsi que du serveur DHCP intégré de XiVO. Nous préférons en effet gérer l’attribution des adresses de manière globale sur le routeur de chaque site. Dans la mesure où nous utilisons des VPN nous ne souhaitons pas compliquer davantage la configuration de chaque routeur afin de limiter les erreurs et simplifier les diagnostics.

Explication: Cela n’empêche pas le fonctionnement du provisioning mais il y a un problème. XiVO, dans cette configuration, se trouve incapable de déterminer automatiquement le modèle de téléphone, impliquant de devoir sélectionner manuellement le greffon pour chaque téléphone (c’est une archive contenant ce qu’il faut pour générer un fichier de configuration pour chaque terminaison, c’est également là que l’on place les fichiers de firmware Cisco, plus d’informations ici).

Un autre problème, c’est que dans un greffon se trouve la gestion de plusieurs téléphones. Sauf que si XiVO ne sait pas précisément quel modèle on veut provisionner, alors il créera seulement un fichier générique qui ne contient pas les spécificités de chaque modèle. Ça fonctionnera quand même pratiquement à tous les coups mais ce n’est pas idéal.

  • Comme le 7945 et le 7970 ne sont pas du tout supportés, si on modifie le module xivo-libsccp, ils seront capables de s’enregistrer, mais encore faut il un greffon pour les provisionner!

Explication: Au départ, j’avais modifié le greffon qui gère entre autres les Cisco 7941 et 7942 pour lui faire accepter les 7945 et 7970, ces dernier étant simplement des nouvelles versions du 7941. Et cela fonctionnait correctement. Rapidement j’ai découvert que les fichiers de configuration permettaient bien de faire fonctionner indifféremment un 7941 ou un 7945, mais les options spécifiques à chaque modèle n’étaient pas renseignées dans les fichiers générés. Une option dans XiVO permettant d’effectuer ce choix était vraisemblablement présente mais elle a été retirée, selon les dires d’un développeur.

J’ai alors décidé de rétablir ce choix manuel grâce à une petite astuce. Puisque l’on peut toujours choisir manuellement un greffon, j’ai créé des greffons dédiés modèle par modèle à partir des greffons officiels fournis par XiVO. Ainsi, lorsque l’on se trouve dans la même configuration, il suffit d’ajouter un de nos greffons modifiés et l’attribuer à une terminaison, un téléphone.

J’ai souhaité rendre cela facile d’accès pour tout le monde, il suffit de savoir manipuler un peu la ligne de commande sous Linux et comprendre un peu le fonctionnement des greffons et de XiVO. Attention tout de même, les greffons Cisco sont fournis sans les fichiers firmware à l’intérieur, il faut donc se les procurer séparément, comme pour les greffons officiels.

2. Modification et recompilation du module xivo-libsccp pour supporter le Cisco 7945 et le 7970

C’est presque l’étape la moins risquée, mais tout de même assez sensible. De mauvaises manipulations pourraient entraîner un fonctionnement erratique. J’ai choisi d’ajouter deux modèles pour vous montrer la marche à suivre mais il est tout à fait possible d’en ajouter d’autres.

On va donc commencer par accéder au serveur, dans mon cas en SSH.

ssh -l root IP.DE.VOTRE.XIVO

Puis, une fois le mot de passe saisi et validé, on entre la commande suivante:

apt-get update && apt-get install build-essential asterisk-dev git-core

Acceptez ce qui est proposé. Puis nous allons entrer successivement :

git clone https://github.com/xivo-pbx/xivo-libsccp.git
cd xivo-libsccp/xivo-libsccp/

C’est là que le plus risqué doit être fait. La documentation officielle indique qu’il faut compiler. Dans notre cas, nous allons préalablement éditer trois fichiers à l’aide de nano: sccp_device.csccp_msg.c ainsi que sccp_msg.h.

On va s’en occuper dans l’ordre:

nano sccp_device.c

On va d’abord rechercher l’emplacement où se trouvent les modèles supportés. On utilise la commande Control-W pour cela, puis on tape le texte à chercher et on valide en appuyant sur la touche Entrée. Ici on va rechercher par exemple case SCCP_DEVICE_7942, car on sait qu’il est déjà dedans. Note : Il est possible que l’on trouve déjà dans le fichier les informations pour le 7970.

Cela renvoie vers une liste qui ressemble à ceci (en gras, ce que l’on ajoute):

 case SCCP_DEVICE_7941:
 case SCCP_DEVICE_7941GE:
 case SCCP_DEVICE_7942:
 case SCCP_DEVICE_7945:
 case SCCP_DEVICE_7960:
 case SCCP_DEVICE_7961:
 case SCCP_DEVICE_7962:
 case SCCP_DEVICE_7970:

On va maintenant enregistrer les modifications en utilisant la commande Control-X, et on valide lorsqu’il nous est demandé si on veut enregistrer les changements.

On vient de s’occuper du premier fichier, il en reste deux autres. Ce ne sera pas plus compliqué. Je vais abréger un peu, il suffit de reproduire ces étapes pour chaque fichier.

Dans le cas de sccp_msg.c on va donc rechercher quelque chose qui n’est pas en gras et ajouter ce qui l’est:

 case SCCP_DEVICE_7942:
          return "7942";
 case SCCP_DEVICE_7945:
          return "7945";
 case SCCP_DEVICE_7960:
          return "7960";
 case SCCP_DEVICE_7961:
          return "7961";
 case SCCP_DEVICE_7970:
          return "7970";

Et enfin, même opération pour le fichier sccp_msg.h:

SCCP_DEVICE_7962 = 404,
 SCCP_DEVICE_7937 = 431,
 SCCP_DEVICE_7942 = 434,
 SCCP_DEVICE_7945 = 435, SCCP_DEVICE_7905 = 20000, SCCP_DEVICE_7920 = 30002, SCCP_DEVICE_7970 = 30006,

Je ne sais pas à quoi correspond précisément la valeur à droite du numéro de modèle mais c’est nécessaire. Pour ajouter le support d’un modèle supplémentaire, il suffit de reprendre ces étapes, et pour la valeur en question, vous pouvez vous aider de ceci. Attention, un modèle non supporté pourra ainsi s’enregistrer, mais il faudra encore avoir un greffon d’approvisionnement qui le gère.

À partir de là, une fois que tous les fichiers sont modifiés et enregistrés (il est préférable de se relire), on va pouvoir compiler conformément à ce qui est expliqué dans la documentation. Pour cela, on entre l’une après l’autre les commandes suivantes:

make
make install

Quand tout est terminé, on redémarre le serveur avec la commande reboot. On entre ensuite le nom d’hôte du serveur si on est connecté en SSH.

3. Installation des greffons modifiés

On se connecte à l’interface d’administration web de XiVO, puis on choisit l’onglet Configuration, et enfin, dans la colonne de gauche, sous Approvisionnement, on clique sur Configuration.

Dans le champ URL, entrez l’adresse du dépôt de greffons que nous avons spécialement créé:

http://files.labcellar.com/xivo-provd

 

On sauvegarde la configuration, puis on se rend dans Greffons (dans la colonne de gauche), et on clique sur l’icône en haut à droite qui permet de charger les greffons. Au bout d’un instant, on peut voir apparaitre un liste de greffons nommés sous la forme xivo-cisco-sccpXX-9.0.3.

Au moment où j’écris ces lignes, j’ai préparé sept greffons (d’autres sont à venir si besoin):

  • xivo-cisco-sccp05-8.0.3 : Pour Cisco IP Phone 7905
  • xivo-cisco-sccp06-9.0.3 : Pour Cisco IP Phone 7906 et 7911
  • xivo-cisco-sccp12-8.0.4 : Pour Cisco IP Phone 7912
  • xivo-cisco-sccp20-3.0.2 : Pour Cisco IP Phone 7920
  • xivo-cisco-sccp21-1.4.5 : Pour Cisco IP Phone 7921
  • xivo-cisco-sccp31-9.0.3 : Pour Cisco IP Phone 7931
  • xivo-cisco-sccp40-8.1.2 : Pour Cisco IP Phone 7940 et 7960
  • xivo-cisco-sccp41-9.0.3 : Pour Cisco IP Phone 7941 et 7961
  • xivo-cisco-sccp42-9.0.3 : Pour Cisco IP Phone 7942 et 7962
  • xivo-cisco-sccp45-9.0.3 : Pour Cisco IP Phone 7945 et 7965
  • xivo-cisco-sccp70-9.0.3 : Pour Cisco IP Phone 7970 et 7971
  • xivo-cisco-sccp75-9.0.3 : Pour Cisco IP Phone 7975

Il n’est utile d’installer, via l’icône en regard de la ligne du tableau, que les greffons dont vous avez besoin. Quelques secondes après avoir cliqué sur l’icône, un autre tableau devrait apparaître, correspondant au contenu du greffon. Si on essaye d’installer un fichier cela ne fonctionne pas.

4. Installation des firmwares Cisco dans les greffons

En effet, nous allons devoir procéder manuellement. Je ne peux pas vous fournir les fichiers de firmware, mais ils sont téléchargeables depuis le site de Cisco. Il suffit de créer un compte pour accéder aux firmwares. Les fichiers de langues quant à eux nécessitent un contrat de racket service SMARTnet payant.

Mes greffons, ont été élaborés à partir des greffons officiels de XiVO, nécessitent les mêmes versions des firmwares et leur installation se fait de la même façon. En l’occurrence pour les modèles cités plus haut, il faut la version 9.0.3. Pour les fichiers networklocale et les fichiers de langage, il faudra les versions 9.0.2.

Une fois que vous avez obtenu les fichiers dont vous avez besoin, au minimum le firmware, alors mettez le en ligne quelque part, un hébergement en ligne quelconque, c’est le plus simple.

Pour la suite, je vais prendre comme exemple l’installation des fichiers pour le 7945. Il conviendra de remplacer les noms des fichiers par ce que vous avez si vous installez un autre greffon.

On se connecte en SSH au serveur:

ssh -l root IP.DE.VOTRE.XIVO

On entre le mot de passe et on valide. Puis:

cd /var/lib/xivo-provd/plugins/xivo-cisco-sccp45-9.0.3/var/cache

Puis on va télécharger ici les fichiers dont on a besoin depuis l’emplacement en ligne où on les a placé.

On a donc:

  • firmware (obligatoire) : cmterm-7945_7965-sccp.9-0-3.zip
  • langage (optionnel) : po-locale-fr_FR-9.0.2.1000-1.cop.sgn
  • network locale (optionnel) : po-locale-combined_network-9.0.2.1000-1.cop.sgn

On va donc entrer la commande wget suivie de l’URL du fichier:

wget http://mon-hebergement-web.com/fichiers/cmterm-7945_7965-sccp.9-0-3.zip

On répète ensuite l’opération pour les deux autres fichiers, si besoin.

Une fois que c’est fait, on reprend l’interface web de XiVO que l’on a laissé de côté. On retourne dans le greffon que l’on avait installé, dans notre cas celui du 7945, et on peut cliquer sur le bouton d’installation en regard de la ligne qui correspond au firmware, et on répète cette opération si besoin pour les autres fichiers.

5. Configuration du serveur DHCP du routeur

Une fois les fichiers installés, il faut s’assurer que votre serveur DHCP, sans doute votre routeur, indique aux téléphones que vous branchez où ils doivent aller chercher les infos. Je ne peux pas expliquer comment on fait avec tous les modèles de routeurs, il vous faut un modèle un peu plus évolué qu’une box. Avec pfSense, il faut se rendre dans l’interface de configuration. Une fois connecté, on se rend dans Services puis DHCP Server.

On clique ensuite sur le bouton Advanced en regard de Additional BOOTP/DHCP Options. Dans la case Number on entre 150. Dans la liste déroulante on sélectionne IP address or host et enfin on tape l’adresse IP de notre serveur dans la case Value.

On va à tout hasard cliquer sur TFTP, et entrer l’adresse IP de notre serveur.

Ensuite on clique sur Save.

6. Installation des téléphones

Maintenant on peut brancher notre téléphone. Je continue mon exemple avec le Cisco 7945. Il suffit de le relier à la prise Ethernet appelée généralement 10/100 SW. Si le switch n’est pas en mesure de fournir l’alimentation PoE, alors il faut également relier un bloc d’alimentation compatible. Le téléphone va démarrer. Note : Pour que le firmware puisse être provisionné, il faut que votre téléphone soit chargé avec la version 8.3.3 du firmware au minimum.

Pendant ce temps, on retourne dans l’interface de gestion de XiVO et dans la page des terminaisons, accessible dans la colonne de gauche de la page IPBX, on devrait pas tarder à voir apparaitre dans le tableau une nouvelle ligne, il faut parfois un peu de patience.

À gauche, l’adresse MAC indiquée correspond à celle du téléphone. À droite on peut voir quel greffon est utilisé. L’un des boutons à droite de cette ligne permet de modifier la terminaison et ainsi choisir quel greffon on lui applique. Il est important que le bon greffon soit sélectionné sans quoi le téléphone ou le système d’approvisionnement pourrait avoir un comportement erratique.

XiVO choix greffon

Si besoin, on peut remettre le téléphone en configuration d’usine en le déconnectant de son alimentation. Il suffit alors de le reconnecter et immédiatement appuyer sur la touche # et maintenir la touche enfoncée jusqu’à ce que les touches de lignes clignotent alternativement en orange. Lorsque c’est le cas, on peut relâcher la touche # et on dispose alors d’une minute pour entrer la séquence de touches 123456789*0#, et le téléphone redémarre et réclame au serveur son firmware.

Pendant ce temps, il est vital de ne pas déconnecter le téléphone sans quoi le firmware risque d’être corrompu et le téléphone inutilisable.

En attendant que le firmware se charge, dans l’interface, section IPBX, on va dans Utilisateurs, dans la colonne de gauche. On entre toutes les informations nécessaires comme indiqué dans la documentation officielle, puis dans l’onglet ligne, on clique sur l’icône +.

XiVO Utilisateur ligne SCCP

On choisit le protocole SCCP, on entre un numéro de ligne désiré. Dans le champ Terminaison on clique sur l’adresse MAC du téléphone à provisionner, et le pop-up devrait disparaître et le champ se remplir. Il ne reste maintenant plus qu’à sauvegarder.

Au bout de quelques instants, une fois le firmware chargé sur le téléphone et lors que ce dernier indique Enregistrement ou Registering, il devrait alors finir par afficher le num de l’utilisateur en haut à droite, et la première touche de ligne devrait afficher le numéro de ligne demandée.

 

Il ne reste qu’a répéter l’opération pour tous les téléphones concernés et vous aurez un serveur XiVO qui sait enregistrer et provisionner des téléphones Cisco SCCP non supportés.

Conclusion

Ce tutoriel nous est très utile car il permet de faire fonctionner nos téléphones préférés avec XiVO et il a été rédigé pour répondre à notre besoin. Certains greffons ont été réalisés à la demande d’autres utilisateurs de XiVO et toute remontée de bug ou d’information m’intéresse. Une fois toutes les manipulations effectuées il n’y a plus grand chose à faire à part en profiter. Ce tutoriel a été réalisé grâce à l’aide des développeurs de XiVO et à ce titre, je les remercie très chaleureusement.

[MISE A JOUR]

Depuis, XiVO a forké vers Wazo qui est développé par l’équipe originale, et aussi le système de répertoires a changé, ce qui implique que les greffons que l’on trouve ici ne fonctionnent plus depuis plusieurs éditions de XiVO. Si quelqu’un a le courage de les modifier nous pouvons aussi les héberger avec plaisir.

[XiVO] Auto-hébergement, téléphonie, pfSense, OVH

3

Bonjour tout le monde !

1. Je vous explique le contexte

Comme vous le savez peut-être, voilà maintenant un peu plus d’un an que je me suis lancé, non sans difficultés, dans l’univers incroyable et merveilleux de la téléphonie IP. Nous avons commencé par un serveur dédié OVH Kimsufi 2G, cinq téléphones Cisco 7960 avec firmware SIP, et une ligne SIP Free (activable gratuitement dans l’interface client de tout abonné Freebox, alors autant s’amuser avec).

Quelques tests et bidouillages plus loin, ça marchait. On pouvait se téléphoner entre nous, appeler et recevoir des appels de l’extérieur et pendant plusieurs mois, tout fonctionnait à merveille. J’ai eu besoin d’un peu de temps pour mieux comprendre certains mécanismes de la VoIP avec Asterisk, essayer plusieurs autres distributions packagées comme Elastix. Mais au final, plus je connais XiVO, plus j’ai envie de l’utiliser.

Cisco 7941En effet, comme je n’y connais pas grand chose, je fais des recherches. Et à chaque fois je constate que le problème de la personne est un bug qui date des premières versions et qui depuis a été corrigé, je constate aussi que les demandes et retours des utilisateurs sont pris très au sérieux. De plus, j’ai eu pour les quelques soucis que je n’ai pu régler seul le plaisir de discuter en direct avec l’équipe, qu’il est très facile de contacter et qui sont la meilleure référence quand on a une question. Je précise qu’on ne me paye pas pour dire tout ça, mais je suis bien obligé de reconnaître que c’est très plaisant de discuter avec des gens compétents et sympas.

J’ai pas mal évolué, à tous les niveaux. Je comprends un peu mieux ce que je fais, même s’il m’arrive de me tromper et nous avons depuis changé un peu de matériel. En effet, nous avons cherché d’autres téléphones. Les Cisco IP Phones de la série 7900 sont très sympa et on les trouve très classe sur nos bureaux. Cependant, nous n’en avions que cinq mais rapidement nous nous sommes retrouvé avec un total de 32 de ces téléphones : Un mix de 7940, 7960 et 7941.

2. La solution de départ

  • Un serveur dédié OVH Kimsufi 2G
  • Connexion 100 Mb/s directement reliée (on retrouve l’IP externe sur l’interface Ethernet)
  • Debian Wheezy 32bit
  • XiVO installé via le script bash
  • Nos sites équipés de routeurs pfSense avec un proxy SIP (Siproxd)
  • Téléphones Cisco avec firmware SIP, pas de provisioning, configuration entièrement via les menus du téléphone

Ça fonctionnait, c’était assez stable, mais les firmwares SIP ne sont pas d’aussi bonne qualité que les firmwares SCCP pour ces téléphones. De plus, XiVO ne gère pas le provisioning de ces postes en SIP mais seulement en SCCP. On aurait pu croire qu’il aurait suffit de passer les téléphones en SCCP pour pouvoir gérer ça mais ce protocole passe mal à travers le NAT de nos routeurs.

3. Une minute de réflexion

Nous avons interconnecté trois de nos sites (et d’autres à venir) par OpenVPN en utilisant nos routeurs. Nous avions donc comme idée de relier également notre serveur dédié à XiVO chez OVH par VPN afin de se retrouver comme sur un réseau local et donc de profiter du provisioning et du SCCP. Le problème c’est qu’on a un peu merdé. Et puis on s’est dit : « Mais attends, de l’autre côté de ce mur — oui, il y avait un mur quand on s’est dit ça — il y a une baie avec des serveurs qui nous appartiennent ». Donc on a utilisé un de nos serveurs pour la téléphonie. Au moins il est chez nous, et c’était bien l’objectif de départ que d’héberger nous-même ce dont on a besoin. Ceci étant dit, on se retrouve donc avec un serveur de téléphonie, en local. On met un firmware SCCP dans nos téléphones, on crée quelques lignes et tout se met à marcher, du moins en interne.

4. Appels internes c’est bien, mais externes c’est quand même pratique

Nous souhaitons donc relier notre serveur XiVO local à une ligne SIP OVH. Nous avons choisi une ligne SIP Entreprise sans les appels vers les mobiles. Nous allons utiliser cette ligne en tant que trunk. Ce sera en quelque sorte le lien entre notre serveur de téléphonie, et ceux d’OVH, permettant ainsi de passer des appels vers et depuis l’extérieur.

Nous avons quelques contraintes :

  1. Notre serveur de téléphonie doit être fiable
  2. Il doit permettre le provisioning des postes et le SCCP
  3. La téléphonie doit fonctionner depuis n’importe quel site, provisioning compris
  4. Le serveur est situé sur un réseau local derrière un routeur pfSense
  5. Il doit permettre les appels vers et depuis l’extérieur

A ces contraintes, nous avons apporté les solutions suivantes :

  1. Nous allons utiliser un serveur HP ProLiant DL380 G4, avec du RAID, RAM, alimentations, ventilation redondante, bref, la totale
  2. Il faut pour cela installer les greffons correspondant aux téléphones dans l’interface de gestion de XiVO (dans notre cas il faut également trouver les bonnes versions des firmwares, merci Cisco)
  3. Nous utilisons des VPN entre nos différents sites
  4. Nous allons installer le package siproxd sur le routeur
  5. Il faut pour cela configurer un trunk dans XiVO.

C’est justement les points 4 et 5 qui nous intéressent car ça ne coule pas forcément de source pour un néophyte.

5. Configuration du routeur

On considère un routeur pfSense fonctionnel, avec une interface LAN et une WAN. Côté WAN on est raccordé a une Freebox en mode bridge, nous permettant de récupérer directement l’adresse IP externe sur l’interface réseau du routeur. Côté LAN on est en statique, dans notre cas 192.168.10.1. Le serveur DHCP du routeur est activé et on a attribué une adresse fixe à notre serveur de téléphonie. Notre VPN est configuré et vous pouvez vous aider de cette méthode. Dans les paramètres du serveur DHCP, on va ajouter une option 150 correspondant à notre serveur de téléphonie si on souhaite gérer le provisioning.

Ce que l’on va faire maintenant, c’est installer un paquet sur le routeur. On se connecte donc via un navigateur sur l’interface Web de gestion de pfSense, disponible sur son adresse LAN.

On va dans le menu System, puis Packages et s’affiche la liste des paquets disponibles. On clique alors sur le bouton en regard de siproxd. L’installation va se lancer. Il est important de laisser le routeur procéder à l’installation avant de cliquer ailleurs.

Une fois que c’est terminé, on peut se rendre dans le menu Services, puis siproxd pour procéder à la configuration.

Très peu de choses à régler. Cochez la case Enable siproxd, sélectionnez LAN dans le menu inbound interface, et WAN dans le menu outbound interface. Les deux champs suivants doivent rester vides.

On passe ensuite à RTP Settings, où tout doit être vide à l’exception de la case Enable RTP proxy. Dans la catégorie DSCP Settings, cocher les deux cases.

Tout le reste doit impérativement être décoché ou vide, puis sauvegardez.

6. Configuration de XiVO

On considère un serveur XiVO configuré et fonctionnel avec les appels internes. On ne peut pas encore passer d’appels externes, entrants comme sortants.

On va commencer, comme dans tous les guides que l’on peut trouver par se rendre dans l’onglet Services, puis IPBX.

XiVO Services IPBX

Dans la colonne de gauche, et plus précisément dans Gestion des interconnexions, on clique sur Protocole SIP. Un tableau vide devrait alors apparaître. On clique sur le bouton + en haut à droite, s’affiche alors une page de configuration avec quatre onglets.

Je ne vais préciser que les champs dans lesquels on entre quelque chose :

a. Onglet Général

On entre l’identifiant de la ligne (ex. 0033XXXXXXXXX)

On recopie le champ précédent

Le mot de passe correspondant à la ligne OVH

Varie selon l’offre choisie (dans notre cas c’est 2)

Friend

Statique (Cela fait apparaître un champ supplémentaire : sip.ovh.fr)

Appels entrants (from-extern)

fr_FR

b. Onglet Enregistrement

On coche la case

udp

L’identifiant de la ligne (ex. 0033XXXXXXXXX)

On recopie le champ précédent

Le mot de passe correspondant à la ligne OVH

Serveur distant : sip.ovh.fr

5060

c. Onglet Signalisation

DTMF : Inband

Personnaliser les codecs : On coche la case, faisant apparaitre deux tableaux

On clique sur le + en regard des codecs GSM (Audio) et G.711 A-law (Audio).

Ces deux codecs doivent apparaître dans la colonne de gauche.

d. Onglet Avancé

Insécurité : Tout

Port : 5060

Réécriture du champ From-User : L’identifiant de la ligne (ex. 0033XXXXXXXXX)

Réécriture du champ From-Domain : sip.ovh.fr

Protocoles réseau : udp

Enfin, on sauvegarde.

On vient donc de créer le lien d’interconnexion avec notre fournisseur SIP chez OVH. Celui-ci va nous servir à passer des appels vers l’extérieur. Comme nous avons placé notre serveur de téléphonie derrière un proxy SIP, nous devons créer un deuxième trunk avec la même méthode qui sera utilisé pour les appels entrants.

On va donc retourner dans la liste des interconnexions SIP si ce n’est pas déjà fait, et on va à nouveau cliquer sur le + en haut à droite.

On va plus ou moins reproduire ce qu’on a fait précédemment, à quelques différences près.

a. Onglet Général

trunk-incoming (par exemple, pour l’identifier aisément)

 On entre l’identifiant de la ligne (ex. 0033XXXXXXXXX)

Le mot de passe correspondant à la ligne OVH

Varie selon l’offre choisie (dans notre cas c’est 2)

Peer

Statique (Cela fait apparaître un champ supplémentaire dans lequel on entre l’IP du proxy SIP, dans notre cas 192.168.10.1)

Appels entrants (from-extern)

fr_FR

b. Onglet Enregistrement

On ne coche pas la case (on ne remplit rien)

c. Onglet Signalisation

DTMF : Inband

Personnaliser les codecs : On coche la case, faisant apparaitre deux tableaux

On clique sur le + en regard des codecs GSM (Audio) et G.711 A-law (Audio).

Ces deux codecs doivent apparaître dans la colonne de gauche.

d. Onglet Avancé

Insécurité : Tout

Port : 5060

Réécriture du champ From-User : L’identifiant de la ligne (ex. 0033XXXXXXXXX)

Réécriture du champ From-Domain : sip.ovh.fr

Protocoles réseau : udp

On sauvegarde, et on a terminé pour ce qui est des interconnexions SIP.

Maintenant que c’est fait on va expliquer au serveur ce qu’il faut faire en cas de réception ou d’émission d’un appel.

On va donc se rendre dans Appels sortants, sous la catégorie Gestion des appels, et on clique sur le traditionnel +.

a. Onglet Général

Nom : ovh (par exemple)

Contexte : to-extern

Temps de sonnerie avant de raccrocher : Illimité

Interconnexions : On clique sur le + en regard du trunk que nous avons créé pour les appels sortants, celui dont le nom est le numéro de ligne OVH.

b. Onglet Extensions

Un tableau vide s’affiche avec une case +, sur lequel on clique, faisant apparaître une ligne vide. Dans la case Extension, on entre « 0. » sans les guillemets pour définir la syntaxe d’un numéro externe. Le zéro sera à composer avant le numéro de votre correspondant à l’extérieur. Le point est important car il signifie que tout ce qui viendra après le zéro sera le numéro du correspondant.

Note : D’autres tutoriels indiquent qu’il faut saisir « 0XXXXXXXXXX ». Chaque X représentant un unique chiffre, cela signifie qu’on ne peut appeler que des numéros à 10 chiffres. Personnellement, je préfère le point, représentant une suite quelconque de chiffres, pour pouvoir appeler les numéros courts de certains services clientèle, etc.

Dans la liste déroulante Stripnum on choisit 1. Enfin on peut sauvegarder.

On peut maintenant faire un test d’appel. À l’aide d’un téléphone interne, on tente de composer un numéro externe précédé d’un zéro. Et normalement, l’appel s’effectue et on peut même discuter avec le correspondant.

C’est terminé pour les appels sortants.

On va maintenant dans la colonne de gauche choisir Appels entrants, et dans la page qui s’affiche on va encore choisir le + en haut à droite.

Cette partie est très simple.

SDA : Votre numéro d’appel OVH, mais sous la forme classique 0911223344

 

Contexte : Appels entrants (from-extern)

 

Destination : Utilisateur (par exemple)

 

Renvoyez vers : L’utilisateur désiré

On sauvegarde et enfin il ne reste plus qu’à se rendre dans Contextes, dans la colonne de gauche.

On clique ensuite sur l’icône en regard de la ligne from-extern, puis on se rend dans l’onglet Appels entrants.

Dans le tableau, on clique sur le +, on tape le numéro d’appel sous la forme 0911223344 dans le champ Début de l’intervalle de numéros, et on choisit 10 dans la case Nombre de chiffres reçus. On sauvegarde et c’est terminé pour la configuration.

A présent, on peut tenter un appel depuis l’extérieur en composant le numéro de ligne OVH, et si je n’ai rien oublié, le poste choisi dans le champ Renvoyez vers devrait sonner.

Vous pouvez vous connecter à votre pfSense, sur l’onglet Users du package siproxd. Vous devriez voir apparaître une ligne correspondant à votre trunk OVH.

Ceci est notre configuration et elle fonctionne. Si toutefois vous aviez une meilleure idée, une amélioration ou une correction à apporter, laissez donc un commentaire. J’ai réalisé ce tutoriel grâce à l’aide des développeurs de XiVO et j’en profite pour les remercier pour l’excellent travail qu’ils font.

[Déballage] Réception du ProLiant MicroServer Gen8

2

Tant de choses se sont passées depuis notre dernier billet ! Indignes que nous sommes de vous laisser dans l’attente haletante d’un excellent article sur un sujet de fond… Ou pas.

Résumé de l’épisode précédent

Depuis la dernière fois, des tas de décisions ont été prises, du matériel a été trouvé, des aménagements on été faits…

Nous avons effectivement défini les postes de travail que nous utilisons dans nos locaux. Un poste complet sera donc composé d’un Dell Optiplex 745 au format USFF équipé en bi écran 24″ et 17″, une webcam Logitech C525, un clavier Logitech K200, une souris optique HP ainsi qu’un téléphone Cisco 7940. Nous sommes très attentifs à ce que tous les postes soient harmonisés.

Il a été décidé que les Macs (en très faible nombre) ne seront pas intégrés au réseau outre mesure, excepté la solution on ne peut plus basique fournie par Apple dans Mac OS X.

Les asset tags que nous posons sur le matériel sont actuellement imprimés avec une Dymo LabelManager PNP et seront prochainement remplacés par une autre solution plus efficace, plus propre et moins chère.

Des progrès ont été faits dans la gestion de la téléphonie avec XiVO, les Cisco 7940 et PfSense.

Nous avons créé une page de vente pour le matériel dont nous ne nous servons pas ou plus et de la logistique nécéssaire pour pouvoir le retirer sur CAR94 à Charenton-le-Pont, VLG89 à Villeneuve-la-Guyard, ou C1389 à Chéroy. Nous mettrons régulièrement à jour la page pour plus de facilité. Nos ventes s’effectuent de particulier à particulier. Nous ne sommes pas une entreprise, et l’argent obtenu sert à financer nos futurs achats uniquement. Lorsque vous nous achetez quelque chose, vous nous aidez.

Nos différents sites sont équipés de manière très aléatoire, cela va changer. En effet, CAR94 est équipé HP, C1389 est équipé Dell. Les serveurs n’ont rien à voir entre eux en termes de performances, de capacité, de qualité de fonctionnement, etc.

C’est justement l’objet de ce billet. Toujours dans un soucis d’harmonisation, afin de faciliter la formation, l’installation, l’utilisation et la maintenance, tout semble en bonne voie pour que nous puissions équiper ces deux sites du même modèle de serveur, permettant de baisser significativement la consommation énergétique, le bruit, tout en conservant les avantages d’un serveur local, de la rapidité d’accès, etc.

MicroServer G7

MicroServer G7

C’est dans cette optique que mon choix s’est porté pour le HP ProLiant MicroServer Gen8. Si vous suivez le blog, vous savez sans doute que j’ai eu par le passé un MicroServer G7. Cette machine était intéressante pour tous les avantages cités plus haut, mais elle souffrait de quelques défauts pénibles.

En effet, outre le processeur soudé, cette machine se présentait dans la gamme ProLiant comme un ovni. On n’y trouvait pas les composants habituels de la gamme, pas vraiment la même logique dans le fonctionnement, pas de vraie gestion à distance malgré l’ajout d’une carte spécifique… Ça se rapprochait plus d’un PC « Embedded » appelé « ProLiant » avec quatre emplacements de disques.

Premières impressions

Moi ce que j’aime, c’est le côté serveur, et de ce point de vue là, j’étais moyennement satisfait. Avec la Gen 8 du MicroServer, HP a conçu un excellent produit. Il exploite de la RAM DDR3 ECC Unbuffered. J’ai chargé la mule avec 16 Go. Le processeur (dans mon cas un Celeron G1610T par défaut) est remplaçable, donc plein de possibilité d’évolutions, notamment jusqu’à des Xeon E3 (le socket utilisé est un LGA1155) tant que le TDP est inférieur à 45W. Il n’est pas nécessaire d’extraire la carte mère pour ajouter de la RAM. Toutefois il est toujours possible de le faire mais cela se fait par l’arrière (à condition d’avoir préalablement déconnecté toutes ses prises).

HP iLO logoOn trouve un contrôleur RAID HP Dynamic Smart Array B120i qui se gère dans le traditionnel Array Configuration Utility comme tout ProLiant qui se respecte, une vraie gestion à distance avec iLO 4 en Gigabit Ethernet ou depuis l’appli mobile. A ce sujet, une puce Broadcom nous offre deux Gigabit Ethernet sur la carte mère. Cette dernière donne également accès à 6 ports USB dont certains en USB 3. Il y a également un port USB interne, ainsi qu’un lecteur de carte Micro SD.

La machine est certes relativement compacte mais c’est un concentré de serveur et c’est un vrai régal. On a tout de même un slot PCI Express pour peu qu’on ait une carte Low profile. Je verrai ça quand j’y installerai mon contrôleur RAID HP Smart Array P410 avec cache et batterie de back-up.

Lorsque l’on ouvre la porte frontale, dont l’esthétique n’est pas sans rappeler ses grands frères ML notamment, on a accès à une clé HP pour le serrage des vis et aux quatre emplacements pour les disques durs. La machine est fournie avec des tiroirs de disques vides.

Le lecteur optique (non fourni dans mon cas) est de type slim 9 mm. Personnellement j’en ai pas besoin car j’ai mon disque dur Zalman, vachement plus pratique et plus rapide qu’un CD.

Un truc très sympa, le serveur est équipé de l’Intelligent Provisioning, qui permet d’accéder à tout un tas d’utilitaire de configuration et de diagnostics très utiles qu’il était possible d’avoir avec le CD SmartStart mais aussi d’autres.

J’ai été impressionné lorsque j’ai démarré le serveur après avoir remplacé la RAM car il a automatiquement lancé un test de la mémoire, ce qui est plutôt appréciable.

Niveau bruit, la machine souffle fort au démarrage. Comme tout ProLiant qui se respecte, quand vous l’allumez il ventile assez fort puis diminue son régime pour redevenir silencieux. N’ayant pas encore pu installer mes disques à l’intérieur, je ne peux pas vraiment juger du silence mais disons que ça semble être assez proche de l’ancienne génération.

Quelques défauts

A première vue, n’ayant pas encore vraiment testé la machine, j’ai noté quelques défauts. Tout d’abord le contrôleur RAID. De ce que j’ai pu trouver sur le net, il n’est pas possible de lui adjoindre de la mémoire cache et une batterie de back-up. C’est dommage car cela ne permet par d’activer le support du RAID5 si toutefois il en était capable. Je vais utiliser un autre contrôleur HP mais c’est tout de même dommage de ne pas permettre cela sur le contrôleur intégré.

Les tiroirs de disques sont marqués comme non hot-plug ce qui est dommage. On regrettera aussi que ce ne soit pas les mêmes tiroirs que dans les autres serveurs, ceux avec les LEDs indiquant l’état du disque car c’est classe et sympa. Même s’il serait peut-être possible d’en insérer un, le fond de panier n’a pas les connecteurs des LEDs donc elles seraient de toutes façons inopérantes.

Autre chose, la bande lumineuse bleue en bas de la façade indique l’état du serveur (c’est bleu, orange ou rouge, à ce que j’ai lu) mais il aurait été super qu’on puisse s’en servir de LED UID. Une LED UID virtuelle est cependant présente dans l’interface web d’iLO mais j’aurais bien aimé que la LED physique sur le boîtier clignote quand on prend la main via la gestion a distance.

La porte de la façade est plutôt sympa mais contrairement à la génération précédente, elle ne dispose pas de serrure. Elle est aimantée pour rester bien fermée mais un système à clefs aurait été bienvenu. Il est toutefois possible d’en verrouiller l’ouverture via un loquet mais celui-ci se trouve à l’intérieur du serveur, impliquant de démonter la coque. Pas super pratique.

Conclusion

Il me semble que cette machine soit une réussite malgré ses quelques défauts. Je l’ai obtenu pour 240 euros sur Amazon mais il est fréquent de la trouver à des tarifs bien plus élevés. Dans tous les cas, indépendamment du fait qu’elle est plus récente, les améliorations apportées par HP par rapport à la génération précédente me laissent penser que le prix n’est pas disproportionné.

J’ai personnellement beaucoup d’affection pour les petits serveurs de ce type par rapport aux NAS. Le prix d’un NAS Synology ou QNAP est assez élevé et il n’est pas dit que ce serveur revienne moins cher, mais il faut reconnaître que son évolutivité et sa capacité à lancer de nombreux systèmes d’exploitation en font un adversaire redoutable (à condition de savoir configurer soi-même un OS serveur).

Il sera très certainement encore possible de mettre à jour le système même si HP n’apporte plus vraiment de support comme c’est possible sur les autres serveurs (la preuve, nous utilisons des serveurs de cinquième génération avec le dernier Windows Server sans problèmes). Et là où les NAS disposent de RAM et de processeurs soudés, il sera ici possible d’apporter des modifications à la configuration.

J’ai hâte de recevoir le reste du matériel pour pouvoir mettre en place quelques bricoles…

[Day to day life] De l’importance dans les sauvegardes

0

De tout temps, nos systèmes informatiques sont les proies de dysfonctionnements. La cause en est souvent la durée de vie des équipements, et parfois des défauts de conception, de fabrication ou même d’utilisation.

Les supports de stockage font partie de ces équipements. Pouvoir stocker des To de données c’est très intéressant, très pratique et je ne sais pas comment je ferai si je ne pouvais pas, mais il faut avouer que la défaillance d’un disque dur peut avoir des répercussions catastrophiques.

Il y a deux jours, j’ai eu le déplaisir, l’horreur de découvrir une situation tout à fait atroce et insupportable. Un des disques durs de mon serveur était en panne.

Les outils de monitoring râlent, expliquent qu’il faut changer le disque dans les plus brefs délais, qu’un spare vient de prendre le relais pour reconstruire le RAID5, que si un autre disque dur tombe en panne en même temps, le contenu sera irrécupérable, tout ça, tout ça. Bon, dans mon cas tout va bien, le spare a pris le relais, le RAID s’est reconstruit, il reste encore un spare online disponible, tout va bien. J’ai de la chance.

Le RAID n’est pas une solution de sauvegarde. Si au mieux, il améliore les performances, il peut retarder la perte de données avec une tolérance aux pannes, mais la seule solution efficace c’est de déporter les données sur un autre support, de préférence offline.

Disque SAS HPPensez donc à sauvegarder. Dupliquez vos données en des lieux distincts d’une façon ou d’une autre. Un jour où l’autre, vous en aurez besoin. Je ne ferai pas ici le tour de toutes les types et logiciels de sauvegarde mais plus le système est simple, plus il est fiable. Time Machine, sur Mac, c’est super joli et super pratique, mais une sauvegarde ça peut-être simplement copier tous les fichiers à sauvegarder sur un disque dur externe une fois par semaine, et mettre immédiatement après ce disque en sécurité.

Plus un fichier existe en un grand nombre d’exemplaires, plus il y a des chances pour que dans 10 ans on en retrouve un. Multipliez vos sauvegardes, multipliez les emplacements où vous les entreposez, multipliez les types de supports (disques durs, disques optiques, bandes, ou même une autre machine joignable via Internet…).

Réception du ProLiant Microserver G7

0

En cette période où je n’ai le temps de rien, je vous offre juste quelques petites photos de mon ProLiant Microserver G7. Une jolie petite machine qui saura remplacer un NAS pour pas très cher.

L’avantage par rapport à un NAS, même des Synology qui sont mes préférés, c’est que c’est un vrai PC doté d’un processeur AMD Neo 54L (pas très puissant mais suffisant), donc on peut y faire tourner le système qu’on veut sans problème. La RAM est extensible, donc je l’ai passé à 8 Go de RAM, et j’ai réutilisé le disque dur fourni pour y mettre le système d’exploitation dans la baie optique pour installer 4 disques 3 To. Toutes les vis nécessaires sont fournies dans la porte.

Je m’en sers de cible iSCSI pour stocker des médias, qui seront partagés par mon serveur habituel qui est mon contrôleur de domaine. Je n’ai pas encore terminé son intégration dans mon réseau mais il est très silencieux. Quand on a goûté au serveur à la maison on ne peut décidément plus s’en passer…

La nouvelle génération (G8) est encore plus intéressante car contient des éléments plus puissants évidemment, mais aussi iLO4, qui permet de gérer le serveur et d’en prendre le contrôle à distance dans une page Web, comme un vrai ProLiant.

Réaménagement de la cuisine

2

Voilà longtemps que nous n’avions pas posté par ici, manque de temps, accumulation de travail, fatigue, tentative de meurtre, arrestation, procès… Euh, non pas les trois derniers en fait…

J’ai récemment pu faire une bonne affaire, une fois n’est pas coutume, et me suis dégoté un joli petit serveur HP ProLiant ML370 G5 pour remplacer le ML350 que je vous avais montré dans un précédent post, et qui partira dans la cave de ma maman adorée pour remplacer son valeureux ML350 G3, dont j’avais également parlé.

J’en profite pour déballer un peu les caractéristiques, chose que tout geek apprécie lorsqu’on lui présente une machine :

  • deux processeurs Intel Xeon E5430 (Quad-core 2,66 GHz, FSB à 1333 MHz)
  • deux cartes mémoires accueillant 16 barrettes au total (j’ai 24 Go de RAM en PC2-5300 Fully Buffered ECC)
  • Chipset Intel 5000P
  • deux contrôleurs RAID HP Smart Array P400 (chacun avec 256 Mo de cache et batterie de back-up)
  • deux cartes réseau intégrées NC373i Gigabit Ethernet
  • slots d’extensions PCI Express et PCI-X
  • deux ports USB 2.0 en façade, deux à l’intérieur et deux à l’arrière
  • kit de ventilation redondante (6 ventilateurs)
  • deux blocs d’alimentation hot-plug (en redondance) 1170 Watts
  • deux baies de huit disques SAS SFF (2,5″) 146 Go 10000 rpm configurés en RAID 6 ADG (6 disques actifs et 2 online spares par volume RAID)
  • HP StorageWorks Ultrium 960 sur carte SCSI dédiée
  • System Insight Display (affichage par LED des défaillances)

Extérieurement, il ressemble comme un frère au ML350 qu’il remplace, il accepte les mêmes disques, les mêmes alimentations Hot-Plug ventilées. Pourtant il est plus long d’une douzaine de centimètres, peut accueillir jusqu’à deux fois plus de disques SFF, moins d’emplacements 5,25″, et pourtant à l’intérieur ça change. On passe de deux ventirads pour les processeurs à de simples radiateurs, la RAM n’est plus sur la carte mère mais sur des cartes additionnelles, les VRM sont tous les deux remplaçables (un seul sur le ML350), les ventilateurs ne sont plus sur les processeurs et à l’arrière du boîtier mais tous au centre, formant deux colonnes de trois ventilos, permettant ainsi de supporter des pannes à ce niveau là.

Une machine vraiment sympathique et avec de la gueule, fournie en très bon état, et que j’ai pu compléter avec mon premier ML370 G5 pour en faire le monstre que c’est aujourd’hui. Il est maintenant raccordé à un onduleur, ce qui n’était pas le cas avant, mais il faudrait que j’en trouve un deuxième pour avoir de la redondance là aussi. Il est plus bruyant que son prédécesseur, c’est pourquoi il était hors de question de l’installer ailleurs que dans ma cuisine, mais plutôt que de le laisser vulgairement sous la table, il est maintenant sur la partie inexploitable de mon plan de travail, permettant ainsi d’économiser de la place dans la pièce. J’ai pour l’occasion posé deux câbles Ethernet pour pouvoir le relier à chacun de mes routeurs.

Voici sans plus attendre quelques photos de l’installation…

Alors, la classe hein ?

GeekPics : La cuisine du Geek

4

Avis à tous ceux qui rodent par ici, il fait bon dans la cuisine d’un geek. Pourquoi s’emmerder à héberger vos données ailleurs quand vous pouvez le faire chez vous? Déjà, moi, ça m’interpelle. Mais quand en plus de ça, c’est dans la cuisine, je trouve ça sympa.

La table où on a l'habitude de manger ou cuisiner, bah là c'est mort...

La table où on a l’habitude de manger ou cuisiner, bah là c’est mort…

Le serveur en question (HP ProLiant ML350 G5, deux Quad-core Xeon 2,33, contrôleur RAID SmartArray P400, 8 Go de RAM, 2x72 Go et 6x146 Go en SAS 10K) et un petit switch Netgear ProSafe posé dessus.

Le serveur en question (HP ProLiant ML350 G5, deux Quad-core Xeon 2,33, contrôleur RAID SmartArray P400, 8 Go de RAM, 2×72 Go et 6×146 Go en SAS 10K) et un petit switch Netgear ProSafe posé dessus.

En réalité c’est pas du tout par plaisir, c’est simplement que j’ai un studio, et ce serveur, même s’il est relativement peu bruyant, est insupportable la nuit. J’aimerais pouvoir le placer dans ma cave, mais c’est une galère sans nom pour passer du câble dans les gaines techniques, personne ne sait comment ça se gère au syndic, ils sont prêts à me laisser passer du 230V directement dans les gaines Numéricable, France Télécom, c’est dire si le technicien connaît son boulot… Donc depuis hier soir, c’est dans la cuisine, jusqu’à ce que le syndic me propose une solution plus fiable que de passer de la haute tension au milieu des basses tensions.

Comment assouvir ses besoins de Big Brother chez soi

0

Bonjour bonjour !

Non, nous n’avons aucune hécatombe à déplorer, bien que nous ne sommes actuellement pas très actifs ces temps-ci. Pourtant j’ai aujourd’hui retrouvé un tuto d’il y a deux ans et que je pensais perdu (en fait il était bien présent en /files/racine/bordel8/sauv/bordel/bordelcopie/poil/merdier_bizarre/ de mon dossier personnel sur le NAS, c’est dire si c’était rangé !).

L’idée à l’époque était, avec un PC sous Ubuntu et une simple webcam USB d’avoir chez soi un petit serveur sur lequel on peut mettre un site, des fichiers, ce que l’on veut, mais aussi et surtout, une page web qui affiche l’image de la webcam sans avoir besoin de grand chose. Mon but était d’avoir une interface graphique sur la machine pour éventuellement être utilisée pour surfer de temps à autres.

J’utilisais Ubuntu Server 10.10

Vous avez besoin pour cela de :

  1. un quelconque PC capable de faire fonctionner Ubuntu 10.10
  2. Ubuntu Server 10.10
  3. une webcam (je ne sais pas quel type particulier mais on avait utilisé une version Logitech de l’EyeToy
  4. une connexion Internet pas trop dégueulasse (ce tuto était prévu pour une connexion avec IP dynamique mais les chanceux qui ont une IP fixe verront de quelle partie ils peuvent se passer)
  5. un domaine OVH avec un DynHost
  6. un modem-routeur-box qui permet la redirection de ports
  7. un peu de patience et des gencives de porc

Commençons par le truc le plus simple, installer Ubuntu Server 10.10 et choisissez à l’installation les options LAMP, OpenSSH et Samba. Et laissez-vous guider, il n’y a rien de particulier à faire. Vous pouvez en attendant rediriger le port 80 de votre routeur vers votre serveur (voire faire une DMZ mais c’est pas super pour la sécurité). Vous pouvez vous connecter en SSH depuis votre machine ou entrer les commandes physiquement sur le serveur indifféremment.

Une fois tout installé, connectez-vous avec votre couple login/password et faites une mise à jour :

admin@server:~$ sudo apt-get upgrade

Une fois que c’est terminé :

admin@server:~$ sudo apt-get install xorg gnome-core gdm gnome-applets gnome-system-tools gnome-utils compiz-gnome firefox sysv-rc-conf gedit webcam network-manager software-center libapache2-mod-auth-mysql phpmyadmin ddclient

Puis on va modifier les autorisations du dossier racine de site Web par :

admin@server:~$ sudo chmod -R 777 /var/www

Maintenant, pour rendre l’accès plus commode depuis votre réseau local, vous pouvez éditer le fichier de configuration de Samba comme suit :

admin@server:~$ sudo nano /etc/samba/smb.conf

Ajoutez dans la section [Share definitions] le bloc suivant :

[www]

   comment = Partage Web

   read only = no

   available = yes

   public = yes

   writable = yes

   path = /var/www

   guest ok = no

   browsable = yes

Enregistrez et quittez, puis on s’occupe du domaine OVH. Vous avez créé un identifiant DynHost qui autorise la mise à jour de l’adresse IP comme le fait No-IP ou DynDNS, ainsi qu’un champ DynHost correspondant. Ensuite il faut créer le fichier de configuration de DDclient. Il suffit de copier ce qui suit en remplaçant les XXXX par les bonnes informations :

admin@server:~$ sudo nano /etc/ddclient.conf

Si quelque chose est présent, il suffit de tout remplacer par cela :

# Configuration file for ddclient

#

# /etc/ddclient.conf

daemon=600 # check every 600 seconds

syslog=yes # log update msgs to syslog

mail=root # mail all msgs to root

mail-failure=root # mail failed update msgs to root

pid=/var/run/ddclient.pid # record PID in file.

cache=/tmp/ddclient.cache # Cache file

## Check IP via DynDNS CheckIP server

use=web, web=checkip.dyndns.com/, web-skip='IP Address'

## Enter your Ovh DynHost username and password here

login=XXXXXX # your Ovh DynHost username

password=XXXXXX # your Ovh DynHost password

protocol=dyndns2 # default protocol

server=www.ovh.com # default server

## Dynamic DNS hosts go here

XXXXXXXXX

Enregistrez et quittez. Puis modifiez, sinon créez le fichier de configuration de la webcam :

admin@server:~$ sudo nano /home/ladmin/.webcamrc

Remplissez avec ceci (vous pouvez laisser tel quel, ou bien modifier les noms des fichiers) :

[ftp]

host = localhost

user = nobody

pass = xxxxxx

dir = /var/www/webcam

file = webcam.jpg

tmp = imageup.jpg

local = 1

[grab]

device = /dev/video0

width = 640

height = 480

delay = 1

quality = 100

Enregistrez et quittez. On s’approche violemment du but. Il ne reste plus qu’à éditer le fichier rc.local pour lancer le programme de capture automatiquement :

sudo nano /etc/rc.local

Faites le ressembler à ceci :

#!/bin/sh -e

#

# rc.local

#

# This script is executed at the end of each multiuser runlevel.

# Make sure that the script will "exit 0" on success or any other

# value on error.

#

# In order to enable or disable this script just change the execution

# bits.

#

# By default this script does nothing.

webcam /home/ladmin/.webcamrc&

exit 0

Redémarrez !

Il ne vous reste plus qu’à placer un fichier index.html (Exemple de fichier index).

C’est vraiment terminé ! Gardez cependant bien à l’esprit que tout ce que filme votre webcam est diffusé sur la page Web.

[Nostalgeek] Réception d’un autre ProLiant

0

Bonjour,

Un petit nouveau est apparu dans la famille.

Alors pour récapituler :

Il y a quelques mois j’ai récupéré deux serveurs Compaq ProLiant ML370 de toute première génération. Nous avançons sur deux ou trois bricoles progressivement, mais l’autre jour, une annonce sur Leboncoin m’a interpellé par son prix.

Voyez plutôt le résultat :

Un processeur Xeon à 2,8 GHz, sans doute 1 Go de RAM, quelques disques en SCSI Hot-Plug, un RAID5 et un RAID1 sont déjà configurés mais ils vont sauter au profit d’autres disques durs très prochainement et fourni avec tous les disques originaux pour la configuration de la ROM.

Je vais récupérer ensuite un lot de 59 disques durs Hot-Plug SCSI pour ce genre de serveurs, histoire d’avoir du spare en cas de panne. Je vais m’atteler à augmenter sa RAM et ajouter un second processeur. J’aime le luxe, certes, mais un serveur doit avoir à mon sens au moins deux processeurs. Et puis ça fait bien.

À bientôt pour de nouvelles aventures serveurisées !

Go to Top