Virtualiser Yunohost directement sur une machine serveur

Ce how-to vise à expliquer en détail comment installer une instance Yunohost, sur une machine virtualisée par VirtualBox, directement sur un serveur pour se dégager de la contrainte de devoir travailler sur une seule machine hôte.
Le but étant de disposer d’une instance Yunohost de test avec snapshot pour le packaging d’application, sans subir la contrainte de devoir utiliser toujours le même ordinateur.

Créer un groupe et un user dédié

On créer un user vbox, qui sera seul autorisé à accéder à VirtualBox, et qui sera nécessaire pour l’interface phpVirtualBox.

sudo groupadd vbox
sudo useradd -d /home/vbox -m -g vbox -s /bin/bash vbox

On donne un mot de passe unique à cet utilisateur.
echo `dd if=/dev/urandom bs=1 count=200 2> /dev/null | tr -c -d 'A-Za-z0-9' | sed -n 's/\(.\{24\}\).*/\1/p'` sudo passwd vbox

Installation de VirtualBox et de ses dépendances:

sudo apt-get install linux-headers-$(uname -r) dkms virtualbox

linux-headers et dkms sont nécessaires pour compiler les modules virtualbox pour le noyau.

Puis on ajoute notre utilisateur vbox au groupe VirtualBox.
sudo adduser vbox vboxusers

En l’état, VirtualBox est fonctionnel, mais uniquement en ligne de commande par l’utilisateur vbox.
Toutes les commandes VBoxManage et autre doivent être préfixée de sudo -u vbox

Installation de l’interface web phpVirtualBox.

Afin de préparer le terrain pour l’installation de l’application. On se servira d’une webapp vide.

Puis il suffit de télécharger l’application phpVirtualBox sur sourceforge.
wget http://sourceforge.net/projects/phpvirtualbox/files/phpvirtualbox-4.3-3.zip/download -O phpvirtualbox-4.3-3.zip

On modifie le fichier config.php
cp config.php-example config.php && nano config.php

var $username = 'vbox';
var $password = 'MOT_DE_PASSE_VBOX';

Le mot de passe qui a été généré précédemment pour l’utilisateur vbox.

var $noAuth = true;
Si on veut désactiver l’authentification de phpVirtualBox et laisser ça à Yunohost.

var $previewWidth = 512;
Pour changer la taille de la prévisualisation de la machine virtuelle. Une taille confortable est appréciable car c’est le seul moyen de voir ce que fait véritablement la machine virtuelle.

Configuration du service vboxwebsrv

Pour l’interaction de phpVirtualBox avec VirtualBox, il est nécessaire d’activer le service vboxwebsrv.
On ajoute ces 2 lignes à la fin du fichier /etc/default/virtualbox

VBOXWEB_USER=vbox
VBOXWEB_HOST=127.0.0.1

Toutefois, en utilisant le paquet virtualbox des dépôts debian, le fichier init de vboxwebsrv est absent. Il est donc nécessaire de le récupérer à partir d’un paquet deb.

Pour faire simple, en voici le contenu.

Le fichier init est bien évidemment à placer dans le dossier /etc/init.d/ avec les droits root en 755
On créer ensuite les liens pour démarrer et arrêter le service.
sudo update-rc.d vboxweb-service defaults
Et on démarre le service.
sudo service vboxweb-service start

A présent, phpVirtualBox fonctionne avec VirtualBox sur l’adresse choisie lors de l’installation de la webapp.
Toutefois, nous n’avons aucune machine virtuelle et aucun moyen d’en installer une directement.

Installation de Yunohost

Pour faire simple, nous allons installer Yunohost dans une machine virtuelle sur un ordinateur disposant d’un écran, jusqu’à configurer un accès SSH fonctionnel.
Ensuite on fera simplement un export de cette machine virtuelle pour la réimporter sur le serveur afin de disposer d’un serveur Yunohost, accessible en SSH et via son interface web, martyrisable à loisir avec des snapshot réguliers.


Une autre solution, que je n’ai pas testé, est l’usage du bureau à distance. Simplifié par la “console” de phpVirtualBox.
Toutefois, activer la fonctionnalité de bureau à distance sur VirtualBox implique d’installer le pack d’extension, qui n’est pas libre…

Pour ce faire, il suffit de télécharger l’extension pack et de l’installer.
wget http://download.virtualbox.org/virtualbox/4.3.34/Oracle_VM_VirtualBox_Extension_Pack-4.3.34-104062.vbox-extpack
sudo -u vbox VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.3.34-104062.vbox-extpack

2 Likes