Virtual Appliance ou Software Appliance

Les solutions de virtualisation font désormais partie du quotidien de tout administrateur système cherchant à rationaliser l’utilisation de ses ressources matérielles et logistiques. Ainsi pour des raisons de place et de coût de fonctionnement (consommation électrique et refroidissement) l’utilisation d’outils tel que VMWare est une alternative avantageuse à l’achat de nouvelle machine.

Un OS virtualisé reste cependant un système qu’il faut administrer. Il faut toujours le maintenir et installer des logiciels. La virtualisation utilisée tel quel ne réduit pas le coût de maintenance c’est-à-dire le coût lié à l’administration. Il y certes moins de serveur physique mais toujours autant de serveur virtuel. Mon expérience professionnelle m’a d’ailleurs montré que les systèmes virtualisés peuvent être de sérieux goulots d’étranglement et ne sont à priori pas à destiner à des usages lourds (nombreux utilisateurs, base de données…) si l’on multiplie les applications pour une même machine virtuelle. C’est une évidence: du multi-tâche virtualisé sera moins performant qu’en natif. La solution serait de multiplier les machines virtuelles pour séparer les applications mais alors on augmente la charge de la machine hôte qui doit gérer plus de machines virtuelles et qui doit supporter la charge d’autant d’OS invité. Si la puissance machine (CPU, Mémoire) n’est pas un problème, il restera encore le coût d’administration du nouveau serveur virtuel.

C’est là qu’interviennent les “Virtual Appliance” qui sont des machines virtuelles toutes prêtes que l’on peut ajouter dans une machine hôte. Ainsi si on a besoin d’un serveur pour une application donnée, il est inutile d’installer un OS puis l’application et de configurer l’ensemble pour commencer à utiliser l’application. Il y 2 philosophies. La première celle de VMWare qui fournit des “Virtual Appliance” sous la forme de machine virtuelle à ajouter dans un VMWare. La seconde celle de Turnkey qui propose une image ISO utilisable directement sur une machine physique ou dans une machine virtuelle quelconque. Ainsi Turnkey propose des “Virtual Appliance” pour différente configuration comme par exemple Tomcat ou WordPress. L’image ISO est en réalité un disque d’installation du système basé sur Ubuntu qui va installer l’application configurer prêt à l’emploi.

Personnellement,  je préfère VirtualBox comme application de virtualisation qui a l’avantage d’être disponible dans le dépôt officiel d’Ubuntu. Il suffit de créer une machine virtuelle de type Linux/Ubuntu  puis de choisir une configuration réseau “réseau privé hôte” qui autorisera l’acces à la VM depuis l’OS hôte. L’installation de l’OS invité se fait en moins de 5 minutes depuis une ISO prise sur le site de Turnkey et on a alors accès en http/ssh au serveur virtuel. Il est alors tellement facile d’avoir un serveur dédié totalement configuré que l’on s’habitue vite à ne plus avoir à s’occuper d’administration de son OS principal: plus de téléchargement de paquetd, plus de configuration de base de données, plus de modification de port ou de redirection apache à faire. Pour 5 minutes on a une IP sur laquelle répond l’application que l’on veut utiliser. Il suffit juste d’avoir de la puissance processeur et de la mémoire. Avec les beaux jours fleurissent les serveurs virtualisés dédié….

Accès SSH depuis un navigateur: AjaxTerm

Pour qui possède un serveur avec un démon SSH, être bloqué par un firewall empêchant tout accès est un frustration que tout administrateur dans l’âme ne peut supporter longtemps. Une rapide recherche sur le net m’a amené sur le billet suivant  betaphile.net.

AjaxTerm est une petite application web en python qui émule un terminal. Il suffit alors d’avoir un accès web et un navigateur récent pour disposer d’une connexion SSH sur son serveur préféré. La manipulation décrite dans sur le site betaphile.net consiste à rendre accessible en SSL une URL servie par un apache mais redirigé en interne sur le serveur AjaxTerm. Pour plus de sécurité on pourra ajouter une authentification HTTP à l’URL publique.

AjaxTerm est disponible dans Ubuntu via le gestionnaire de paquet.

Accès SSH depuis un navigateur: AjaxTerm

Pour qui possède un serveur avec un démon SSH, être bloqué par un firewall empêchant tout accès est un frustration que tout administrateur dans l’âme ne peut supporter longtemps. Une rapide recherche sur le net m’a amené sur le billet suivant  betaphile.net.

AjaxTerm est une petite application web en python qui émule un terminal. Il suffit alors d’avoir un accès web et un navigateur récent pour disposer d’une connexion SSH sur son serveur préféré. La manipulation décrite dans sur le site betaphile.net consiste à rendre accessible en SSL une URL servie par un apache mais redirigé en interne sur le serveur AjaxTerm. Pour plus de sécurité on pourra ajouter une authentification HTTP à l’URL publique.

AjaxTerm est disponible dans Ubuntu via le gestionnaire de paquet.

Application de généalogie: Geneweb

J’étais à la recherche d’une application pour tracer un arbre généalogique pour mon fils et je pensais utiliser un simple logiciel de dessin vectoriel mais je me décida de rechercher une vrai application dédiée. Je suis alors tombé sur geneweb issue de l’INRIA (Institut National de Recherche en Informatique et Automatique). De doux souvenirs de mes études sur le langage Caml issu de cet institut remontèrent à ma mémoire. Geneweb est écrit en OCaml (Objective Caml).

Sous Ubuntu 9.04 geneweb s’installe depuis le synaptic et la documentation Ubuntu permet d’initialiser rapidement une base de données. Geneweb peut gérer plusieurs base de données généalogique. Geneweb est un serveur http qui écoute sur le port 2317. L’interface graphique est plutôt vieillotte mais la prise en main est aisée. Le plus long est d’entrer les informations c’est alors que l’on peut appliquer la parallélisation du travail. Laissez donc toute votre famille participer au renseignement de la base de donnée.

Geneweb n’écoutant pas sur le port standard du web, le port 80 il est judicieux de configurer un serveur Apache en reverse proxy pour rendre geneweb accessible depuis internet. Nous allons voir comment procéder.

Il faut que le module proxy soit activé. Pour cela aller voir dans /etc/apache2/mods-enabled/ pour y trouver proxy.conf et proxy.load. Si ces fichiers ne sont pas présents aller voir dans mods-available, si ils y sont il suffit de lancer une commande:

a2enmod proxy

Si les fichiers ne sont pas dans mods-available il faudra installer ces modules apaches depuis le dépot.

Une fois le module proxy installer nous allons le configurer pour faire le lien avec Geneweb. Modifier le fichier /etc/apache2/modds-enabled/proxy.conf comme suit:

<IfModule mod_proxy.c>
        ProxyRequests Off
        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>

ProxyPass /geneweb/  //127.0.0.1:2317/
ProxyPassReverse /geneweb/ //127.0.0.1:2317/
 </IfModul mod_proxy.c>

Afin que toute votre famille puisse enrichir la base, nous n’utilisons pas la restriction d’accès offerte par genweb en interne mais une simple authentification par apache.

<Location "/geneweb">
AuthType Basic
AuthName "Restricted App"
# (Following line optional)
AuthBasicProvider file
AuthUserFile /etc/apache2/passwords
Require valid-user
</Location>

La génération du fichier passwords se fait avec la commande suivante

htpasswd -c passwords bidochon

Cela va créer un nouveau fichier de mots de passe avec un utilisateur bidochon pour lequel la commande va demander le mot de passe. Pour ajouter de nouvelles personnes la commande est légèrement différente :

htpasswd passwords tintin

Cela va ajouter l’utilisateur tintin au fichier.

Enfin si l’hébergement de votre propre serveur geneweb vous rebute, vous pourrez toujours vous retourner vers un service gratuit en ligne comme Geneanet

Application de généalogie: Geneweb

J’étais à la recherche d’une application pour tracer un arbre généalogique pour mon fils et je pensais utiliser un simple logiciel de dessin vectoriel mais je me décida de rechercher une vrai application dédiée. Je suis alors tombé sur geneweb issue de l’INRIA (Institut National de Recherche en Informatique et Automatique). De doux souvenirs de mes études sur le langage Caml issu de cet institut remontèrent à ma mémoire. Geneweb est écrit en OCaml (Objective Caml).

Sous Ubuntu 9.04 geneweb s’installe depuis le synaptic et la documentation Ubuntu permet d’initialiser rapidement une base de données. Geneweb peut gérer plusieurs base de données généalogique. Geneweb est un serveur http qui écoute sur le port 2317. L’interface graphique est plutôt vieillotte mais la prise en main est aisée. Le plus long est d’entrer les informations c’est alors que l’on peut appliquer la parallélisation du travail. Laissez donc toute votre famille participer au renseignement de la base de donnée.

Geneweb n’écoutant pas sur le port standard du web, le port 80 il est judicieux de configurer un serveur Apache en reverse proxy pour rendre geneweb accessible depuis internet. Nous allons voir comment procéder.

Il faut que le module proxy soit activé. Pour cela aller voir dans /etc/apache2/mods-enabled/ pour y trouver proxy.conf et proxy.load. Si ces fichiers ne sont pas présents aller voir dans mods-available, si ils y sont il suffit de lancer une commande:

a2enmod proxy

Si les fichiers ne sont pas dans mods-available il faudra installer ces modules apaches depuis le dépot.

Une fois le module proxy installer nous allons le configurer pour faire le lien avec Geneweb. Modifier le fichier /etc/apache2/modds-enabled/proxy.conf comme suit:

<IfModule mod_proxy.c>
        ProxyRequests Off
        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>

ProxyPass /geneweb/  //127.0.0.1:2317/
ProxyPassReverse /geneweb/ //127.0.0.1:2317/
 </IfModul mod_proxy.c>

Afin que toute votre famille puisse enrichir la base, nous n’utilisons pas la restriction d’accès offerte par genweb en interne mais une simple authentification par apache.

<Location "/geneweb">
AuthType Basic
AuthName "Restricted App"
# (Following line optional)
AuthBasicProvider file
AuthUserFile /etc/apache2/passwords
Require valid-user
</Location>

La génération du fichier passwords se fait avec la commande suivante

htpasswd -c passwords bidochon

Cela va créer un nouveau fichier de mots de passe avec un utilisateur bidochon pour lequel la commande va demander le mot de passe. Pour ajouter de nouvelles personnes la commande est légèrement différente :

htpasswd passwords tintin

Cela va ajouter l’utilisateur tintin au fichier.

Enfin si l’hébergement de votre propre serveur geneweb vous rebute, vous pourrez toujours vous retourner vers un service gratuit en ligne comme Geneanet