TP : Installation du système de virtualisation, lancement des VMs

Pendant toute la durée de l’ANF, une infrastructure informatique dédiée est mise en oeuvre. Le schéma ci-dessous en présente l’organisation générale. Il se compose d’un serveur de TP, d’actifs réseau et de vos portables (ie. ceux des participants).

Ce réseau est un réseau privé. Il ne donne pas accès à Internet. L’accès Internet s’effectue au moyen du réseau sans fil de l’Ethic Etapes.

Le serveur de TP remplit les fonctions suivantes :

  • Configuration IP automatisée des portables avec DHCP (IPv4)
  • Diffusion du wiki de L’ANF
  • Dépot des logiciels utiles pour le déroulement des TP
  • Mirroir local de la distribution GNU/Linux Debian
  • Modèles de machines virtuelles à utiliser avec Vagrant
  • Hébergement de machines virtuelles pour les TP

Réseau salle TP

Déroulement des TP

Pendant toute la durée de l’ANF, vous utiliserez votre ordinateur portable pour réaliser les TPs proposés par les intervenants. Le principe est de considérer votre ordinateur comme un petit laboratoire (au sens unité de recherche), et d’y déployer un système d’authentification de type SSO.

Votre ordinateur doit avoir les pré-requis suivants :

  • système d’exploitation Linux, Windows (minimum 7) ou OS X
  • processeur 64bits avec support matériel de la virtualisation (technologie AMD-V ou Intel-VT)
  • 4Go de mémoire vive mais 8Go sont recommandés
  • 30Go d’espace disque disponibles sur le disque dur mais 50Go conseillés

Les TP consisteront essentiellement en la configuration de machines virtuelles vierges pour arriver à construire un mini système d’information avec des fonctionnalités de SSO.

Installation des outils

En premier lieu, il convient d’installer les outils nécessaires au déploiement de machines virtuelles sur votre ordinateur.

Pour les systèmes GNU/Linux, nous commencerons par exécuter le script ci-dessous correspondant à votre distribution, afin d’installer les paquets nécessaires (dépendances) :

chmod a+x install-dependencies.sh
./install-dependencies.sh

Comme système de virtualisation, nous utiliserons VirtualBox. Si ce n’est pas déjà fait, installez VirtualBox à partir du lien ci-dessous correspondant à votre système :

Pour les systèmes Linux, il est nécessaire d’enregister le fichier dans un répertoire temporaire puis de lancer l’installation à l’aide de la commande adaptée à votre distribution (en tant que root ou avec sudo):

  • rpm -Uvh fichier-paquet.rpm pour CentOS
  • dpkg –install fichier-paquet.deb pour Debian et Ubuntu

Sur les systèmes GNU/Linux, lorsque VirtualBox n’est pas installé à partir des paquets de la distribution, il peut s’avérer nécessaire de recompiler le module noyau VirtualBox avec la commande ci-dessous. Cela est surtout vrai après une mise à jour noyau. Cette opération nécessite de disposer des paquets de développement noyau et d’un compilateur C.

sudo /etc/init.d/vboxdrv setup

Ensuite, nous aurons besoin du logiciel Vagrant qui sera en charge du déploiement et de la configuration des machines virtuelles au sein de VirtualBox. Si ce n’est pas déjà fait, installez Vagrant à partir du lien ci-dessous correspondant à votre système :

Pour votre confort, il sera également utile de disposer des outils suivants sur votre ordinateur portable :

  • Un éditeur de texte
  • Un client SSH
  • Un logiciel client Bureau à distance (protocole RDP)
  • Un logiciel de copie de fichiers SCP / SFTP
  • Un navigateur web
  • Logiciel de lecture PDF

Selon les systèmes, le tableau ci-dessous propose un liste d’outils. Sous les systèmes Linux, il est conseillé d’installer ces outils à partir des dépots logiciels de votre distribution, en utilisant le gestionnaire de paquets intégré à votre distribution.

  Ubuntu / Debian / CentOS Mac OS X Windows
Editeur de texte Emacs ou Vi Emacs NotePad++
Client SSH Commande SSH Commande ssh (depuis Terminal) Putty
Client RDP RDesktop Client Microsoft Client Bureau à Distance intégré
SCP / SFTP Commandes scp et sftp Filezilla Filezilla
Navigateur Web FireFox Safari FireFox ou Internet Explorer
Lecture PDF Okular, Evince ou Xpdf Visionneur de Documents Adobe Reader

Environnement virtualisé

Comme cela a été dit plus haut, chacun va travailler sur son propre ordinateur portable. Le schéma ci-dessous, présente les différentes machines virtuelles qui seront déployées tout au long des TP. Il est important de distinguer les deux réseaux :

  • 172.16.1.0/24 est le réseau filaire qui connecte tous les ordinateurs portables de la salle entre eux et avec le serveur de TP. Son nom de domaine est loire.tp.
  • 172.16.20.0/24 est un réseau vituel, géré par VirtualBox au sein de chaque ordinateur. Tous ces réseaux virtuels sont isolés les uns des autres. Son nom de domaine est vbox.tp.

La machine virtuelle gate assure la communication entre vos machines virtuelles et le réseau de TP. Elle agit comme passerelle.

Réseau salle TP

Le tableau ci-dessous liste les différentes machines virtuelles avec leur rôle et leur adressage IP.

Nom Système IP (vbox.tp) Fonction
      Passerelle d’accès au réseau loire.tp pour les VMs
Gate Debian 7 172.16.20.5 Serveur DNS du réseau vbox.tp
      Annuaire LDAP des utilisateurs du système d’information
Kdc Debian 7 172.16.20.11 KDC principal du royaume Kerberos
Web Debian 7 172.16.20.12 Serveur Web
Filer Debian 7 172.16.20.13 Partage de fichier NFSv4
Ad Windows 2012R2 172.16.20.14 Controlleur de domaine Windows 2012
Kdc2 Debian7 172.16.20.15 KDC secondaire pour la mise en oeuvre de la réplication
CLinux Debian 7 172.16.20.21 Poste client linux
CWin Windows 7 172.16.20.22 Poste client windows
CFedora Fedora 20 172.16.20.23 Poste client linux avec interface graphique

Déploiement des machines virtuelles avec Vagrant

Téléchargement et installation des machines virtuelles

Le logiciel Vagrant simplifie la distribution des machines virtuelles. Il utilise des box qui servent de modèles à la création des machines virtuelles dans VirtualBox. Il se charge également de toute la configuration réseau.

  1. Téléchargez la pack configuration Vagrant au format Tar Gzippé ou au format Zip

  2. Décompressez ce fichier à la racine de votre répertoire d’accueil (/home/username ou c:\Users\username)

  3. A la racine de votre répertoire d’accueil vous avez maintenant un fichier Vagrantfile contenant la définition des machines virtuelles de l’environnement de TP. Vous avez également un répertoire .vagrant.d. Vérifiez leur présence, avec la commande ls.

  4. Ouvrez le Gestionnaire de machine de VirtualBox. Ainsi, vous verrez apparaître les machines virtuelles au fur et à mesure de leur création.

  5. Dans une invite de commande, tapez la commande ci-dessous, pour télécharger et installer les machines virtuelles dans VirtualBox

ls Vagrantfile .vagrant.d
vagrant up

Si votre ordinateur est équipé de plusieurs cartes réseaux (filaire et WiFi par exemple), au moment de la mise en place de la VM Gate, Vagrant vous demandra What interface should the network bridge to ? . Au dessus de cette question, il aura listé les interfaces disponibles. Un chiffre est placé devant chaque carte réseau (liste numérotée). A la question, il faut donc répondre par le chiffre de l’interface connectée au réseau filaire de la salle de TP.

Comptes locaux des machines virtuelles

Toutes les machines virtuelles disposent d’un compte nommé vagrant. Le mot de passe associé à ce compte est vagrant. Sur les machines Windows, ce compte fait partie des administrateurs. Pour les machines Linux, toute commande préfixée par sudo sera exécutée sous l’identité du super-utilisateur (root).

Le mot de passe du compte administrateur des machines Windows est P@ssw0rd. Les machines Linux utilisent anf2014 comme mot de passe du super-utilisateur.

Travailler sur une machine virtuelle

Vagrant vous permet d’ouvrir une invite de commande sur une des machines virtuellles Linux. Utilisez la commande vagrant ssh depuis un terminal ou une invite de commande, suivie du nom de la machine virtuelle. Par exemple, pour ouvrir un shell sur la machine gate.

vagrant ssh gate

Si votre ordinateur portable est un Mac, vous aurez sans doute remarqué que le clavier n’est complétement fonctionnel sur le ssh de la machine virtuelle. La carte clavier utilisée par la VM n’est pas la bonne. Corrigez cela avec la commande setupcon osx. Pour ne pas avoir à le faire à chaque connexion, ajoutez cette commande dans le ~/.bashrc de chaque VM.

  1. Ouvrez un shell SSH sur la machine clinux
  2. Lancez un test ping pour vérifier la connectivité avec la machine gate et tester la résolution de nom.
  3. Sur la machine clinux, installez un logiciel de votre choix, par exemple le paquet xbase-clients.
  4. En lançant la commande xeyes depuis le shell SSH ouvert vers la VM clinux, vous obtiendrez la fenêtre de l’application Xeyes sur votre bureau.
ping -c 5 172.16.20.5
dig www.loire.tp
apt-get install xbase-clients
xeyes

Démarrer les autres machines virtuelles

Toutes les machines virtuelles de votre environnement de travail VirtualBox ne se lancent pas automatiquement, afin de ne pas surcharger votre ordinateur portable. Les machines qui se lancent automatiquement, lors d’un vagrant up sont :

  • Gate
  • Kdc
  • Clinux

Le lancement d’une machine supplémentaire s’effectue avec la commande vagrant up, suivie du nom de la machine virtuelle. Par exemple, pour démarrer la machine web, utilisez :

vagrant up web

L’arrêt d’une machine s’effectue avec la commande vagrant halt, suivie du nom de la machine virtuelle. Par exemple, pour arrêter la machine web, utilisez :

vagrant halt web

Si la machine ne s’arrête pas, vous pouvez forcer son arrêt avec l’option -f. Cela revient à couper l’alimentation électrique de la machine.

vagrant halt -f web
  1. Démarrez la machine web.

  2. Ouvrez un shell SSH sur cette machine.

  3. Testez la connectivité réseau avec les machines clinux et gate

  4. Démarrez la machine filer.

Connaitre l’état des machines virtuelles

La commande ci-dessous affiche l’état des machines virtuelles. Ainsi vous saurez quelles sont celles qui ont été créées (avec un vagrant up) et quelles sont celles qui sont allumées.

vagrant status

Utiliser les commandes natives SSH

Néamoins, il n’est pas obligatoire de passer par la commande vagrant ssh, pour ouvrir un shell distant sur les VMs Linux. En effet, Vagrant a mis en place plusieurs redirections de ports qui rendent accessibles les services SSH des différentes VM directement sur localhost.

Pour éviter de jongler avec les numéros de port, la commande ci-dessous génére un fichier ssh_config. Avant cela, il convient de sauvegarder votre fichier personnel, en le renommant.

cd ~/.ssh
mv config myconfig
vagrant ssh-config > config

Désormais, la commande ssh fonctionne pour ouvrir un shell distant sur les VMs. Faites l’essai avec la machine clinux.

ssh clinux

Il est également possible d’utiliser scp et sftp pour déposer des fichiers sur les VMs.

  1. Si vous n’en avez pas, créez-vous un couple de clé SSH (de préférence avec une pass-phrase).
  2. Utilisez scp pour copier votre clé publique (~/.ssh/id_rsa.pub) dans un fichier temporaire sur une VM
  3. Connectez-vous en SSH sur la VM et ajoutez le contenu du fichier temporaire au fichier /root/.ssh/authorized_keys de la VM.
  4. Vous pouvez maintenant vous connecter directement sur le compte root de la VM, sans passer par sudo… N’oubliez pas de déverrouiller votre identité avec la commande ssh-add (saisie de la pass-phrase).

Travailler avec une interface graphique

Jusqu’ici nous avons vu comment ouvrir une invite de commande sur les machines. Même s’il est possible d’ouvrir une application avec interface graphique à travers le canal de redirection X11 de SSH, il est aussi utile de pouvoir accéder à une session de bureau complète. La machine client CFedora est faite pour cela. Elle offre la possibilité d’ouvrir, à travers une session RDP, un environnement de bureau complet (XFCE).

On y accède avec la commande vagrant rdp, mais au préalable il faut démarrer la VM :

$ vagrant up cfedora
$ vagrant rdp cfedora

Supprimer toutes les machines virtuelles (remise à zéro)

La commande ci-dessous supprime toutes les machines virtuelles en cours. ATTENTION, vous perderez toutes les modifications/réglages effectuées sur vos machines virtuelles.

Utilisez ces commandes seulement si vous voulez désinstaller l’environnement de TP de votre machine ou si vous voulez refaire son installation.

vagrant destroy
rm Vagrantfile
rm -rf .vagrant .vagrant.d