Monter un serveur Ubuntu virtuel sous VirtualBox et sans interface graphique


Combien de fois ai-je du réinstaller mon poste Ubuntu avec tous ses services serveurs mis en place pour le développement suite à de nombreuses manipulations ? Je vous propose donc ici de créer des machines virtuelles qui pourront être réutilisées, clonées, triturées en tout sécurité et en toute transparence.

Mais on peut parfaitement imaginer aller plus loin en créant une série de serveurs virtuels sur un ou plusieurs serveur Ubuntu sans interface graphique. Donc autant apprendre à utiliser les commandes en ligne de VirtualBox.Imaginez pouvoir enfin faire une mise à jour d’un service, de votre serveur virtuel dans son ensemble en toute sécurité en clonant simplement le serveur virtuel de production.

 

1.Installation de VirtualBox

Dans un premier temps nous allons ajouter le dépôt Oracle :

echo "deb http://download.virtualbox.org/virtualbox/debian oneiric contrib" | sudo tee -a /etc/apt/sources.list
wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -
sudo apt-get update

Installons ensuite VirtualBox

sudo apt-get install virtualbox-4.1 dkms

Nous allons peut-être utiliser la session Remote Desktop, donc installons le VM Extension Pack d’Oracle qu’il faut télécharger ici

Maintenant que nous avons notre package installons le via la ligne de commande (en remplaçant le nom du extpack par celui téléchargé):

VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.8-75467.vbox-extpack

Un petit contrôle pour voir l’extpack s’est bien installé :

sudo VBoxManage list extpacks

Vous devriez voir ceci :

Extension Packs: 1
Pack no. 0: Oracle VM VirtualBox Extension Pack
Version: 4.1.8
Revision: 75467
Description: USB 2.0 Host Controller, VirtualBox RDP, PXE ROM with E1000 support.
VRDE Module: VBoxVRDP
Usable: true
Why unusable:

Ajoutons maintenant notre compte utilisateur dans le groupe vboxusers
sudo adduser $LOGNAME vboxusers

2.Mise en place du pont de réseau et interfaces réseaux virtuelles

La solution retenue pour les communications réseau entre notre machine hôte et les machines virtuelles est l’utilisation d’interface réseau via la fonction TUN/TAP du noyau Linux. Mais pourquoi ?

Parce que par défaut VirtualBox utilise une méthode de « NAT » ne permettant pas aux autres ordinateurs du réseau local de voir les machines virtuelles. Par contre en utilisant un pont sur lequel nous montons des interfaces virtuelles, nous transformons nortre ordinateur en un genre de hub / switch.

2.1.Installons les packages nécessaires :

sudo apt-get install bridge-utils uml-utilities

2.2.Configuration réseau

Maintenant il faut éditer le fichier interfaces pour ajouter le pont sur l’interface ethernet eth0 et la/les interfaces virtuels :

sudo vi /etc/network/interfaces

Attention voici un exemple qu’il faudra adapater à votre configuration :

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet dhcp

bridge_ports eth0 tap0

auto tap0
iface tap0 inet manual
up ifconfig $IFACE up
down ifconfig $IFACE down

tunctl_user bob

Si vous voulez ajouter d’autres machines virtuelles il faudra ajouter autant de section auto tapX que nécessaire et de l’ajouter au pont (bridge_ports).

Ensuite il suffit de redémarrez le réseau

sudo /etc/init.d/networking restart

3.Création de la machine Virutelle Ubuntu Server 12.04

Nous allons créer une VM avec un disque dur de 10Go, 512 Mo de RAM et connecté sur l’interface réseau virtuelle tap0. Ensuite nous lui attacherons le cd d’installation d’Ubuntu Server 12.04

3.1.Création de la VM

VBoxManage createvm --name "Server Ubuntu 12.04" --register

3.2.1.Paramétrage du bios et de l’interface réseau utilisant le pont via l’interface virtuel tap0

VBoxManage modifyvm "Server Ubuntu 12.04" --memory 512 --acpi on --nic1 bridged --bridgeadapter1 tap0

3.2.2Création du disque virtuel et des paramètres ide de notre VM

VBoxManage createhd --filename /home/bob/VM/disks/Ubuntu_12_04_Server.vdi --size 10000

Maintenant attachons le sur le controller IDE, ainsi que l’image du système d’exploitation à installer

VBoxManage storagectl "Server Ubuntu 12.04" --name "IDE Controller" --add ide
VBoxManage storageattach "Server Ubuntu 12.04" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /home/bob/VM/disks/Ubuntu_12_04_Server.vdi

Ajoutons maintenant le CD d’installation d’Ubuntu Server

VBoxManage storageattach "Server Ubuntu 12.04" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/bob/Téléchargements/precise-server-i386.iso

Et modifions les paramètres bios pour démarrer sur le CD

VBoxManage modifyvm "Server Ubuntu 12.04" --boot1 dvd

3.4.Passons à l’înstallation du système d’exploitation

Avant de démarrer notre VM nous allons ajouter le support du 

VBoxManage modifyvm "Ubuntu 10.10 Server" --vrde on

Modifions le port

VBoxManage modifyvm server01 --vrdeport 5000,5010-5012

Démarrons notre VM

VBoxHeadless startvm « Ubuntu 10.10 Server »

Activation du mode Remote Desktop Connection

Ensuite pour vous connectez il suffit de rentrer la commande rdesktop en remplacant l’IP et le port par celle de votre machine où tourne virtualbox.

rdesktop -a 16 -N 192.168.1.10:5000

Vous devriez voir cet écran :

rdesktop Server 560x438 Monter un serveur Ubuntu virtuel sous VirtualBox et sans interface graphique

Ensuite suivez ce tutoriel pour l’installation d’Ubuntu Server 12.04 LTS. Une fois l’installation terminée il est possible de vous connecter à votre machine en SSH mais aussi à tous les services installés sur celui-ci. Par exemple si vous avez installé le serveur apache alors dans votre navigateur en entrant le nom de votre machine virtuelle vous devriez voir les pages web servit par votre serveur virtuel.




  • neogojira

    Bonjour,

    Pour la gestion des VM sous ubuntu avec virtualbox sans interface graphique, il existe un projet nommé phpvirtualbox ( http://code.google.com/p/phpvirtualbox/ ) qui est une interface web fonctionnant grâce à apache et php5 ou tout autre serveur web.
    J’ai réalisé un petit tuto pour l’installation de phpvirtualbox sur ubuntu, si cela t’intéresse je peux t’en envoyer une copie.

  • ABDEN

    bonjour,

    Pourrais je avoir une copie du tuto pour l’installation de phpvirtualbox sur ubuntu?

    merci d’avance.

    Cordialement

  • Thierry

    Bonjour, et tout d’abord, merci pour ce tutoriel…

    Je suis bien parvenu *presque* jusqu’au bout, mais j’ai un petit souci (petite précision : je suis totalement nouveau dans le monde de la virtualisation…)
    En fait, je parviens à lancer ma VM (nb, je suis sous Ubuntu 12.10 sur mon serveur, et je veux installer la même chose sur ma VM, et sur Windows XP sur le poste client). J’utilise donc la Connexion Bureau à Distance intégrée à Windows.
    En démarrant l’install sur la VM, j’obtiens : This kernel requires the following features not present on the CPU: pae
    Puis-je ajouter cette fonction à mon CPU virtuel ? (NB, le serveur a un processeur viaC7)

    Merci d’avance…

    Thierry