Comment ça fonctionne

Choix de la distribution.

Techniquement le serveur est hébergé chez OVH à Gravelines. Il fonctionne sous Linux et la distribution utilisé est Archlinux. Cette distribution n’est pas vraiment faite pour cela mais c’est celle que j’utilise au quotidien sur mes PC et donc celle que je connais le mieux. Certain vont me dire que je suis un peu barjot. Sans doute.

Archlinux est une rolling release, c’est à dire qu’il n’y a pas de version particulière, elle est en perpétuelle évolution, on l’installe une fois et elle est toujours à jour. C’est tout l’inverse des fixing comme Ubuntu ou Debian pour les quelles il n’y a que des corrections de bugs (pas tout à fait mais presque) entre chaque versions.

L’avantage d’une Archlinux c’est donc qu’elle est toujours à jour avec les derniers logiciels. L’inconvénient c’est que des fois ça peu exploser. Il faut pratiquer les mise à jour très régulièrement et c’est donc pour ça que le serveur subit une mise à jour pas semaine suivit d’un reboot. Avec Debian je faisait ça une fois par mois.

Les sessions.

Chaque passerelle fonctionne dans sa propre session. Chaque session à sa propre configuration notamment au niveau de l’audio qui est géré par pulseaudio. Dans ces sessions il y a deux cartes sons virtuelles, les deux clients VoIP qui doivent causer entre eux (sauf pour les perroquets). Il y’a donc 6 sessions X d’ouvertes en même temps. J’aurais pu en faire moins mais cela aurait été plus chiant car beaucoup de cartes virtuelle par session, des fenêtres de partout.

Les sessions se lancent toute seule au démarrage du serveur, le logiciels client sont lancé par un script propre à chaque session et l’automatisation est réalisé avec xdotool qui simule les divers clics et actions du clavier pour tout ce petit monde se mette en route.

Les perroquets que sont zack et la vouivre n’ont qu’un client en route et un scripts tout con qui répète tout à l’aide de rec et paplay. rec fait parti de Sox et paplay de pulseaudio. Le script de la vouivre est comme ceci.

#!/bin/bash 
fichier=/tmp/$(id -u)-simplex.ogg
while [ true ]
 do
 rec -c1 -r44100 $fichier silence 1 0.1 1% 1 1.0 1%
 sleep 2
 paplay $fichier
done

Très simple quoi.

L’administration à distance.

Tout ce fait à distance. Le serveur étant à Gravelines dans un sombre container. Si l’administration en mode texte est une chose aisé grâce à SSH il en va tout autrement pour du mode graphique sous X. Inutile de dire que je ne voulais absolument pas entendre parler de TeamViewer qui est propriétaire et de plus un logiciel Windows, même sous linux. En effet sous linux il vient avec une version de Wine customisé. C’est un bon logiciel au demeurant mais il y’a déjà tout ce qu’il faut sous linux en plus léger: VNC.

Donc chaque session est lancé dans un serveur VNC auxquelles j’accède par un client. Pour éviter d’avoir autant de ports d’ouvert que de sessions j’ai décidé d’en ouvrir aucun et tout faire passer dans des tunnels SSH. C’est aussi beaucoup plus sécurisé.

Divers.

Vue du lieu où se trouve le serveur.

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.