TP U4 : Vagrant, LTSP, Virtualbox

TP U4 : Vagrant, LTSP, Virtualbox
Noms du binôme :
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
precise32 est le nom du template local que vous allez pouvoir instancier autant de fois que vous
voulez.
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.
Connectez-vous à la machine avec vagrant ssh.
Important : Observez que si vous démarrez VirtualBox, vous voyez votre VM avec un nom un
peu compliqué. C'est parce que vagrant utilise ici VirtualBox comme hyperviseur. Vagrant
peut utiliser d'autres hyperviseur, des containers à la mode docker, voire Amazon Web
Services.
1
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) en cherchant dans les
messages envoyés par vagrant lors du reload. Comment avez-vous fait ?
2
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. Il faut
d'abord créer une box (qui doit contenir le disque complet de la machine)
vagrant package -- output vm_maison.box
3
puis il faut l'intégrer à vos boxes existante comme nous l'avons fait au début pour
http://files.vagrantup.com/precise32.box
vagrant box add seconde_box ./vm_maison.box
Vous devez la voir en faisant à nouveau un
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 pont sur l'interface physique eth0 et assignez lui l'adresse 192.168.0.1 à la
machine. Voir le fichier
L'idée est de distribuer une image de boot (un noyeau) pour le client. Faites le avec la commande
sudo ltsp-build-client
Il faut ensuite modifier le fichier de configuration de dhcp
sudo nano /etc/default/isc-dhcp-server
pour mettre le serveur en écoute sur la bonne interface, en l'occurence eth0. Il faut ensuite mettre à
jour le fichier /etc/dhcp/dhcpd.conf pour qu'il pointe vers la configureation de ltsp en lui ajoutant à
la fin :
include "/etc/ltsp/dhcpd.conf";
Redémarrez ensuite le démon dhcp :
service isc-dhcp-server restart
Une fois l'installation, redémarrez et créez un utilisateur toto avec la commande adduser toto et toto
comme mot de passe.
4
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 (touche F12) et indiquez un boot réseau puis loggez vous en
tant que toto
•
Démarrez un xterm
Effectué □ Fonctionne après correction □ Pas fait
□
Capturez le trafic sur l'interface réseau internet de ltsp_serveur : tcpdump -n -nn -i eth1 -w ltsp.dmp
Une fois loggez, démarrez 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 ?
5
Virtualbox
Tout est fichier
Nous allons dans un premier temps montrer que tout est fichier dans le monde de virtualbox.
Pour cela nous allons créer une première machine depuis Virtualbox 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.
Ajoutez une iso à votre VM en utilisant les iso présentes sur le disque dans /home/Vbox/iso (à
vérifier). Lancez ensuite l'installation du système d'exploitation puis arrêter la machine en utilisant
l'option « Sauvegarder l'état de la machine ».
Q : quels sont les nouveaux fichiers créés dans le répertoire de la machine ?
Gestion des accès distants
Reportez vous au manuel de VirtualBox sur la partie accès distants. Il doit même exister une
6
version française.
Il va falloir :
1. créez une machine avec createvm
2. la démarrer en mode headless :
VBoxManage startvm "nom VM" --type headless
3. Y accéder depuis la seconde machine de la paillasse démarrée en Windows avec le client
intégrer : Démarrer” -> “Tous les Programmes” -> “Accessoires” -> “Connexion bureau
distant”.
7