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