Installer une VM basique
Savoir installer une VM (Virtual Machine) peut être utile. C'est un système d'exploitation dans une “boîte”, facile à transférer, et qui permet de tester des choses en local sans tout casser sur son propre système.
On peut aussi, sur un serveur dédié, installer ses divers sites dans des VM, dont la sauvegarde sera facile.
Cela sert aussi pour le serveur de jeu, bien pratique à tester dans un environnement contrôlé.
Les tutos sont initialement prévu pour quelqu'un sous linux ; à vous d'adapter sur Mac et Windows.
Virtualbox et Qemu sont deux systèmes différents pour créer des VM, à vous de choisir celui qui sera le plus adapté à votre utilisation.
Au sens large, la virtualisation consiste à simuler l'existence d'une machines physique (un ordinateur) via un logiciel (programme) dédié. Vous connaissez sûrement les émulateurs de consoles de jeux sur PC ( exemple : NES, PS2, …) ou de vieilles machines qui ne sont plus disponibles sur le marché (Amiga, Commodore 64, …). Ici ce qui nous intéresse c'est d'émuler le fonctionnement d'un véritable ordinateur moderne. La virtualisation nous permet alors de faire fonctionner un programme prévu initialement pour un système d'exploitation différent de celui que nous utilisons habituellement. Nous pouvons par exemple faire tourner une machine Windows sous Linux, une machine linux sous windows, où même faire fonctionner Windows 8 sur un bon vieux windows XP.
En ce qui nous concerne, la virtualisation va nous permettre de créer une machine virtuelle destinée à installer et tester ryzomcore sans pour autant “polluer” notre environnement de travail principal. Autre point important : rappelez-vous comment nous changions de PC avant : il suffisait la plupart du temps de remettre l'ancien disque dur dans la nouvelle machine pour repartir avec tout son environnement de travail sur une machine plus puissante. Dans notre cas, nous avons besoin du logiciel d'émulation de la machine virtuelle et d'un fichier qui simule le contenu du disque dur qu'on appelle aussi « image disque ». Cette image disque est en fait le sésame, et est échangeable, et partageable ! Ainsi une fois cette machine virtuelle opérationnelle, il suffira (c'est presque vrai!) de copier l'image disque sur le serveur réel pour la faire fonctionner.De plus vous aller pouvoir récupérer cette image vous-même sur votre propre machine pour faire tourner un serveur ryzomcore en local.
Il existe différentes solutions de virtualisation par exemple Virtual PC ou VMWare. Nous avons opté pour VirtualBox ( https://www.virtualbox.org/ ) qui a le mérité d'être open-source, de fonctionner sous Linux, Windows et Mac, d'offrir un interface utilisateur graphique simple pour l'utilisateur lambda qui aimerait tester notre serveur sur sa propre machine, et un dernier argument et non des moindres pour l'utilisateur lambda, VirtualBox est disponible en français. De plus virtualbox permet aussi de configurer la machine virtuelle comme un service tournant en tâche de fond sur un serveur. Rien ne nous empêche par la suite de basculer sur un outil plus orienté serveur comme KVM ( http://www.linux-kvm.org/page/Main_Page ou ici pour une version française http://fr.wikipedia.org/wiki/Kernel-bas … al_Machine ) sous linux, et pour cela le choix du format de l'image disque est important ( http://superuser.com/questions/360517/w … vhd-or-hdd ). Ainsi dans ce qui suit j'ai opté pour le format VMDK, qui a l'avantage d'être un format reconnu partout et qui fonctionne avec VirtualBox sans perte de performance.
Autre remarque : vous pouvez vous interroger sur les performances d'une telle machine. Pour répondre de manière grossière mais pas si fausse, il faut savoir qu'aujourd'hui les technologies sont telles qu'en condition ordinaire un serveur n'utilise que 10 % des capacités du matériel. De plus les processeurs (depuis le pentium II et l'AMD K7) supportent des jeux d'instructions pour la virtualisation dénommés VT-x chez Intel et AMD-V sur les processeurs AMD. De fait, les programmes virtualisés s'exécutent à pleine vitesse sur le processeur. Les dégradations des performances sont essentiellement liées au fait de devoir réserver de la mémoire pour un système complet (système d'exploitation émulé + ses programmes), et le temps perdu dans l'exécution du système d'exploitation invité qui fait double jeu avec le vrai de la machine physique.
— Liria, Le serveur en livrée blanche, 18 mai 2013
Virtualbox
Virtualbox est un système qui s'utilise surtout en mode graphique.
Installation
Sous Windows
Récupérer la dernière version de VirtualBox ici : https://www.virtualbox.org/wiki/Downloads.
Double cliquez sur l'exécutable et l'installation débute ; vous n'avez presque rien à faire à part cliquer sur le bouton suivant à chaque étape.
À la fin, un nouveau programme nommé VirtualBox est installé. Il ne vous reste plus qu'à le lancer !
Sous Linux
Toutes les distributions proposent VirtualBox dans leurs dépôts. Cependant pour installer la dernière version, je vous conseille de passer directement par le dépôt d'oracle (si vous lui faite confiance). Pour cela sous debian ou toute distribution dérivée, ajoutez avec votre éditeur favori le dépôt Oracle au fichier /etc/apt/sources.list
:
deb http://download.virtualbox.org/virtualbox/debian jessie contrib
Récupérez la clef d'authentification des pakages Oracles :
$ wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -
Il ne reste qu'à installer le pakage :
sudo apt-get update sudo apt-get install virtualbox-4.2
Attention : le paquetage « dkms » doit être installé sur la machine afin de permettre la compilation des modules noyaux nécessaires au fonctionnement de virtualbox.
sudo apt-get install dkms
Permettre l'utilisation de la VM via SSH
Une fois qu'une VM a été configuré, c'est plus simple de pouvoir y accéder via SSH pour simuler l'utilisation d'un serveur.
Allez dans Fichier>Paramètre>Réseau. Ajoutez un réseau NAT et vérifiez qu'il correspond en gros à ce qu'il y a dans l'image :
Allez ensuite dans l'onglet “Réseau hôte uniquement” et configurer suivant l'image.
Il est possible que ça ne serve pas à grand chose, le truc avant, mais au cas où ça permet de tout faire…
Ensuite, sélectionnez votre VM, cliquez sur Configuration, et dans “Réseau”, choississez “Accès par pont”. Par défaut, ça devrait aller, mais au besoin vérifiez suivant les détails affichés ici.
Démarrez votre VM. Faites un “ping to” dans votre VM pour vérifier que vous avez bien accès à tout internet.. Faites ifconfig pour connaitre votre adresse ip, puis en dehors de la VM, dans un terminal, connectez vous en ssh à cette ip (pas via le compte root, via un user, ça semble bloquer sinon).
Qemu
Le système de VM “qemu” se gère principalement en ligne de commande. Il est plus léger en ressource que VirtualBox, plus adapté sur un serveur.
Depuis la première rédaction de ce tutoriel, les choses ont bien évoluées. Entre autre des interfaces graphiques de bonne qualité ont fait leur apparition. Aqemu par exemple est une alternative permettant de créer et gérer ses images de façon plus assistées1).
Je n'ai personnellement pas réussi à activer le copier-coller du système de base vers la vm, ou à m'y connecter en ssh, ce qui rend les manipulations très lourdes… donc je suis passée à VirtualBox.
— zatalyz 2016/01/03 16:48
Installer qemu, suivant votre système d'exploitation (dans les dépôts de toute distribution linux honorable).
Pour obtenir une compatibilité avec des scripts ou des commandes déjà existantes, il est nécessaire de recréer la commande “qemu” en fonction de votre architecture avec :
sudo ln -s /usr/bin/qemu-system-i386 /usr/bin/qemu
ou
sudo ln -s /usr/bin/qemu-system-x86_64 /usr/bin/qemu
Pour installer une distribution, il faut d'abord avoir un endroit où le faire, donc créer un disque dur “virtuel”. La commande suivante va donc créer notre vm “khaganat” et lui allouer 20Go de mémoire (oui, je ne vois pas petit pour ce test).
cd /dossier_où_l'image_sera
qemu-img create -f qcow2 khaganat.img 20G
Puis installer Debian Stable dessus (par exemple : c'est ce qu'on va détailler ici), via une netinstall, ce qui permet de ne sélectionner que les composants utiles (pas besoin d'interface graphique sur un usage de type serveur).
qemu -m 512 -cdrom /chemin_de_l'iso/debian-7.8.0-i386-netinst.iso -boot d -hda khaganat.img -net nic -net user
- -m 512 : taille virtuelle de la RAM. Par défaut la RAM est de 128 MB, si on a un ordi un peu puissant autant en donner plus à la VM.
- -cdrom /chemin_de_l'iso/debian-7.8.0-i386-netinst.iso : l’image ISO téléchargée est lue comme un cdrom.
- -boot a|c|d : Pour démarrer sur la disquette (a), le disque dur © ou le CDROM (d). Le démarrage sur le disque dur est par défaut.
- -hda khaganat.img : correspond à l'image de disque crée avant.
- -net nic : sensé faire fonctionne le réseau, mais… ce n'est pas si simple.
- -net user : permet d'utiliser le réseau comme l'hôte. Pour l'installation ça suffit.
L'installation se lance. Suivez le guide un peu plus bas.
Si l'installation se fait sur une machine avec interface graphique, une fenêtre qemu s'ouvre, qui va capturer la souris. Pour la libérer, appuyer sur ctrl+alt, relâcher, sortir la souris.
Démarrer sa VM
Pour lancer le système :
qemu -m 512 -hda khaganat.img -net nic -net user
Documentation sur Qemu
En français :
En anglais, la doc officielle.
Installation de debian de façon "classique"
Surtout qu'ici il s'agit d'une machine de test.
Un partitionnement assisté suffit.
Dans le choix des paquets de base à installer, décocher :
- Environnement graphique de bureau
- Serveur d'impression
- Serveur DNS
- Ordinateur portable
Et cochez tout le reste :
- Serveur web
- Serveur de fichiers
- Serveur de courrier
- Base de donnée SQL
- Serveur SSH
- Utilitaires standards du système
Je ne sais pas si c'est vraiment la bonne idée, il est probable qu'il installe un paquet de trucs inutiles au passage. Améliorez ce tuto !
Une fois l'installation terminée, je n'ai pas trouvé comment quitter proprement, donc j'ai fait ctrl-C dans le terminal où j'avais lancé Qemu. Méchant et bourrin mais efficace !
Au premier redémarrage, se connecter en root, puis lancer
apt-get update apt-get upgrade
Histoire d'être à jour.