TP U4 : Virtualbox, Vagrant, LTSP

Transcription

TP U4 : Virtualbox, Vagrant, LTSP
TP U4 : Virtualbox, Vagrant, LTSP
Noms du binôme :
Documentation VirtualBox : http://www.virtualbox.org/wiki/End-user_documentation .
Première machine virtuelle
Pour créer une machine virtuelle, il faut spécifier à Virtualbox ses caractéristiques.
•
Lancez Virtualbox et créez une machine virtuelle en utilisant l'interface graphique avec les
paramètres suivants :
◦ Nom : Debian1
◦ Type : Debian Linux
◦ Pour toutes les autres options, prendre les valeurs par défaut
Q : Quels fichiers ont été créés sur le disque, quel est leur type (binaire, ascii) et leur rôle à partir de
la commande file (faire un man pour interpréter les valeurs) et en inspectant les fichiers textes.
Q: Quelle est la taille actuelle du disque virtuel sur le disque? Cela correspond-il au paramétrage?
•
•
Editez les paramètres de votre machine. Dans l'onglet « Stockage », ajoutez un disque
CD/ROM virtuel pointant sur l'ISO précédemment chargée.
Bootez et faites une installation classique en créant un utilisateur primaire user.
Installez complètement une VM est aussi long qu'installer une machine physique. Utiliser la
commande createvm pour créer une machine Debian que nous appelerons Debian1 (effacez
la précédente).
1
Réseau
Virtualbox permet de partager des répertoires entre la machine hôte et la machine invité.
• Créez un répertoire partagé à l'aide de l'interface graphique de Virtualbox pour votre
machine Debian1. Cochez la cache permanent mais PAS automatique car on veut ajuster les
droits d'accès au répertoire.
• Montez le répertoire comme une partition externe de type vboxsf dans le répertoire Shared
de l'utilisateur de base 'user'
Q : est-ce que user peut écrire dans ce répertoire. Pourquoi ?
Q : On veut que le montage soit automatique au démarrage. Pour cela, modifiez /etc/fstab avec
comme nom du volume, le nom donné dans l'interface Virtualbox, comme type vbox et comme
options uid= et gid= mis aux bonnes valeurs pour l'utilisateur user.
Effectué □ Fonctionne après correction □ Pas fait
□
Etudions maintenant le type d'interconnexion réseau de la machine.
Nous allons maintenant comparer les performances réseaux des modes NAT et pont.
Pour faire les tests de performance, utilisez les 2 machines de la paillasse. Dans la machine virtuelle
et dans la seconde machine de la paillasse installez iperf.
Utilisation : lire http://openmaniak.com/iperf.php.
Q: quel est le débit obtenu en mode NAT et en mode bridge? Quelle configuration d'iperf avez-vous
utilisez? Commentez le résultat.
2
Performances CPU
Installez le benchmark sysbench (par un apt-get install classique)
Faites tourner le benchmark en lui faisant tester la vitesse d'excécution d'un programme de calcul de
nombre de premiers avec un nombre de threads variables (on le fait varier si on a plusieurs cœurs
associés à l'OS)
Par exemple, pour une seule thread :
sysbench --test=cpu --cpu-max-prime=10000 --num-threads=1 run | grep "total time:"
Le programme fait 10000 calculs. Si il a N cœurs à sa disposition et N threads, chaque thread fera
10000/N calculs donc le temps total est divisé par N
Q: Comparez les performances dans la machine virtuelle et dans la machine physique. Commentez,
en fonction de ce qu'on a vu en cours.
Gestion et accès distant
Virtualbox vous permet de gérer un serveur à distance sans utiliser d'interface graphique.
L'ensemble des commandes en ligne offertes par Virtualbox s'avère d'ailleurs plus riche que ce qui
est disponible dans la GUI.
•
Installez les extensions de Virtualbox (nécessaire depuis récemment pour l'accès distant!).
•
Démarrez la seconde machine, Debian2, à l'aide de la commande VboxHeadless --startvm
Debian2.
Q: quelle adresse IP entrez-vous pour que cela fonctionne? Expliquez.
3
•
Démarrez Wireshark et captez le flux IP entre les 2 machines.
Q: quel est le protocole de niveau transport utilisé pour cette communication? Quel est son débit?
Cela vous semble-t-il élevé à l'échelle d'un réseau local?
Vagrant
Nous allons utiliser Vagrant, un environnement de développement léger et reproductible. Vagrant
peut fonctionner au dessus de différents « fournisseurs » de VM, tel Virtualbox ou Amazon EC2.
Nous allons l'utiliser au dessus de Virtualbox.
Nous allons travailler avec l'utilisateur rt sur la machine physique en Ubuntu.
Création (téléchargement) template de base.
Un ensemble de template pour Vagrant est disponible sur le site : http://www.vagrantbox.es/
Téléchargez une « box » de base :
vagrant box add precise32 http://files.vagrantup.com/precise32.box
Listez les box disponibles avec la commande
vagrant box list
Effectué □ Fonctionne après correction □ Pas fait
□
Créer un répertoire Vagrant_Project
Créer un sous-répertoire VM1. Placez vous dedans et instanciez une VM basée sur le template
precise32 : vagrant init precise32
Démarrez la machine avec la commande vagrant up.
4
Connectez-vous à la machine avec vagrant ssh.
Quelle interface la machine possède-t-elle ?
Configuration de la machine
Vagrant permet d'exécuter de manière automatique des instructions au démarrage d'une machine ou
en cours de fonctionnement.
Créez dans le répertoire VM1, un fichier boostrap.sh
Editez le fichier de configuration de la machine
Le « provisioning » aura lieu soit lors du prochain démarrage, soit à chaud. Nous allons prendre la
seconde option en tapant la commande vagrant reload –provision,
Prouvez qu'un serveur Web tourne depuis l'intérieur de la VM1 (vagrant ssh). Comment avez-vous
fait ?
5
Configuration du réseau
Le serveur Web précédent était accessible depuis l'intérieur de la machine seulement de part la
configuration en NAT. Vous pouvez ajouter des règles sur le NAT dans le fichier Vagrantfile. Ici
nous allons le faire en décommentant la ligne (et en faisant un reload!!)
config.vm.network :forwarded_port, guest: 80, host: 8080
Montrez que le serveur est accessible depuis l'extérieur. Comment avez-vous fait ?
Création de templates (box de base)
Une autre option est de mettre la VM en pont. Faites le en appliquant/adaptant les 2 commandes
Effectué □ Fonctionne après correction □ Pas fait
□
Création d'un template (box)
Supposons que la première machine que vous avez créée et configurée vous satifasse et que vous
vouliez vous en servir de nouvelle base (ou template ou box en vagrant). Rien de plus simple :
6
Vous la trouverez ensuite dans la liste de box de base :
vagrant box list
Effectué □ Fonctionne après correction □ Pas fait
□
LTSP : clients légers en Linux
L'objectif ici est d'avoir un serveur principal et des machines esclaves qui font un boot réseau puis
exécutent leurs applications sur le serveur. Un exemple d'application est l'utilisation de vieux
ordinateurs pour faire simple terminal dans une bibliothèque ou une école.
Création du serveur.
Créez avec createvm une machine debian 7 et installez le paquet ltsp-server-standalone.
Mettez l'interface eth0 en réseau interne et assignez l'adresse 192.168.0.1 à la machine. Voir le
fichier /etc/ltsp/dhcp.defaults.
Une fois l'installation, redémarrez et créez un utilisateur toto avec la commande adduser toto et toto
comme mot de passe.
Créer une seconde machine virtuelle appelée ltsp_client, sans disque et avec un connecteur réseau
en mode « réseau interne ».
•
Démarrerez ltsp_client
•
Au boot, rentrez dans le bios et indiquez un boot réseau puis loggez vous en tant que toto
•
Démarrerez un xterm
Effectué □ Fonctionne après correction □ Pas fait
7
□
Capturez le trafic sur l'interface réseau internet de ltsp_serveur : tcpdump -n -nn -i eth1 -w ltsp.dmp
Une fois loggez, démarrerez firefox, jouez un peu puis arrêter la capture.
Analyser la trace avec Wireshark (à installer).
Quel est le trafic que l'on voit lors du boot ?
Une fois loggez, quel est le protocole dominant utilisé pour les communications client/serveur ?
8

Documents pareils