Comment bien travailler en local en reproduisant un environnement de production avec VMware

Logo VMware

Quand on commence à travailler sur de nombreux projets web avec des technologies bien différentes, il est difficile de trouver tous les paquets compatibles avec son système d’exploitation, particulièrement Windows ou Mac OsX. Vous en avez donc probablement marre comme moi de passer votre temps à chercher les bons packets pour telle ou telle application? Une solution simple consiste à mettre en place une machine virtuelle Debian sur votre ordinateur, qui vous servira de serveur web.

Voyons donc comment procéder :

1 – Les prérequis :

-Commençons par procéder au choix du logiciel de virtualisation :
Pour windows : http://www.vmware.com/products/workstation/overview.html
Pour Mac OsX : http://www.vmware.com/products/fusion/overview.html

La version d’essai est disponible, si vous appréciez la solution, vous pourrez l’acheter par la suite ou bien…

Debian

Avant de créer une nouvelle machine virtuelle, nous allons tout d’abord télécharger notre debian 6 ici : http://www.debian.org/distrib/netinst (onglet Petit CD). Pour la version 32 bits, je vous conseille celle-ci :

Debian 32 bits ou celle-ci pour la version 64 : Debian 64 bits

Le tout fera environ 200Mo, le temps de téléchargement dépendra donc de votre connexion.

Une fois l’image iso téléchargée, vous avez tous les éléments pour vous lancer dans le coeur de l’action !

2 – Installation

Pour commencer, installez votre version de VMWare normalement, c’est à dire en faisant une installation standard sur votre disque dur. Une fois l’installation terminée, lancez VMWare et cliquez sur Fichier->Nouveau . Ainsi, vous allez lancer l’assistant de création de machine virtuelle, vous devriez obtenir une fenêtre comme ca :

Création d'une machine virtuelle sous VMWare

Création machine virtuelle sous mac

Cliquez alors sur “Continuer sans disque”, l’assistant va donc vous demander de choisir un disque d’installation, vous allez donc prendre l’option “Utiliser le fichier image du disque d’installation du système d’exploitation :” et sélectionner l’image iso de la Debian 6 que vous avez téléchargée.

Continuez vers l’écran suivant où vous choisirez le système d’exploitation Linux et la version Debian 5 64bits (pour la version 64 bits…) ou Debian 5 (pour la version 32 bits).

Avant de commencer l’installation, vous pouvez choisir la puissance que vous donnez à votre machine virtuelle, je vous recommande de garder les options par défaut :

Options par défaut de votre machine virtuelle

Configuration de votre machine virtuelle sous mac

Une fois la machine virtuelle configurée, il suffit maintenant de la lancer en cliquant sur le bouton play. Il faut maintenant considéré que ce qui va se passer dans la fenêtre est identique à ce qui se passerait si vous installiez un ordinateur de zéro. C’est comme si vous aviez un ordinateur dans votre ordinateur, c’est magique :).

On va donc procéder à une installation classique d’une Debian mais sans la partie graphique qui n’est pas nécessaire dans notre cas. Vous devriez alors obtenir quelque chose comme ceci :

Ecran d’accueil de l’installation de debian

Choisissez la langue française ou anglais si vous êtes un puriste. Et continuez l’installation normalement, vous allez alors être amené à rentrer le mot de passe du root, je vous conseille quelque chose de simple, pas besoin de le sécuriser, cette machine ne sera accessible que par vous. Vous allez aussi créer un utilisateur Lambda sur votre machine, utilisez ce que vous voulez, il sera inutile…

Pour la partition des disques, utilisez la première option, elle est suffisante. Pour le miror des paquets, je vous conseille mirror.ovh.net.

On va maintenant vous demander les éléments que vous souhaitez installer, choisissez seulement “Utilitaires standard du système” comme l’écran ci-dessous:

Configuration des éléments à installer sur la debian

 

Ensuite laissez l’installation tourner, elle demandera quelques interventions, faîtes toujours ok. Une fois terminée, la machine va redémarrer et vous allez arriver sur la console debian qui vous demande de vous connecter. La prochaine étape reste l’installation des VMWare tools

3 – Les VMware tools

Maintenant que nous avons installé notre machine, il va falloir installer les VMware tools qui permettent le partage de dossier / fichiers facilement. Pour cela connectez vous en root en utilisant le mot de passe défini plus haut.

Afin de facilier le travail sur la machine, je vous conseille d’installer le SSH et de vous connecter à distance sur votre machine :

debian:~# apt-get install ssh

Ensuite faîtes un :

debian:~# ifconfig

Vous devez obtenir quelque chose comme ceci, la ligne intéressante est celle en rouge, elle correspond à l’ip de votre machine :

Paramètres réseau de votre debian

Paramètres réseau de votre debian

Il vous suffit ensuite d’ouvrir votre terminal favori : Terminal sous MacOS/Linux et Putty sous windows pour vous connecter à votre serveur de cette façon :

   ssh root@votre_adresse_id

On va alors vous demander votre mot de passe. Cette méthode est bien plus pratique car elle autorise les copier/coller dans la console des lignes commandes de ce post par exemple. Sinon vous devez tout taper à la main.

Repassons maintenant à l’installation des VMWare tools :

Il faut alors lancer plusieurs commandes linux en prérequis :

debian:~# apt-get update
debian:~# apt-get install autoconf automake binutils make psmisc
debian:~# apt-get install cpp gcc-4.1
debian:~# uname -r
retourne : 2.6.32-5-amd64
debian:~# apt-get install linux-headers-2.6.32-5-amd64

Ensuite il faut monter les VMware tools. Commencez par cliquer sur Machine Virtuelle -> Installer les VMware tools
Ensuite exécutez les commandes suivantes :

debian:~# mount /media/cdrom0/
debian:~# cp /media/cdrom0/VMwareDebian-1.0.1-29996.tar.gz /tmp/
debian:~# cd /tmp/
debian:/tmp# tar xvzf VMwareDebian-1.0.1-29996.tar.gz
debian:/tmp# cd vmware-tools-distrib/
debian:/tmp/vmware-tools-distrib# ./vmware-install.pl

A partir de là, vous faîtes Enter à chaque question et vous attendez la fin, cela peut prendre pas mal de temps. Environ 10 minutes. Pour finir, on met un petit coup de reboot :

debian:~# reboot

Voilà alors maintenant nous en sommes à la fin, nous avons :

  • Une debian installée avec VMWare
  • Les VMWare tools installés
  • L’ip de notre machine virtuelle

Il ne reste plus que le partage de dossier.

4 – Partager un dossier

C’est une des parties essentielle, comment travailler sur cette machine virtuelle à partir de notre ordinateur à nous et de notre IDE local? Pour cela nous allons utiliser le partage de dossier de VMware. Sur la petite fenêtre de notre machine virtuelle, il y a un petit bouton en bas a droite qui permet d’activer le partage de dossier :

Activer le partage de dossier VMware

Activer le partage de dossier VMware

Ensuite, cliquez sur Ajouter un dossier partagé et choisissez le dossier que vous voulez partager, c’est celui dans lequel il y aura tous vos projets web, je vous conseille de créer un dossier projetsweb (pas d’espaces) dans vos documents et de l’utiliser. Le dossier a donc été monté dans /mnt/hgfs/votre_dossier.

Une best practice des serveurs web, est de mettre les répertoires des sites web dans le dossier home, nous allons donc effectuer un lien symbolique afin de retrouver notre dossier dans le home de notre serveur :

debian:~# ln -s /mnt/hgfs/votre_dossier/ /home

Maintenant si vous allez dans votre /home, il existe un dossier. Vous avez donc lié votre machine virtuelle avec un répertoire local. Si vous créez un répertoire contenant votre projets web dans votre dossier créé plus haut, alors il sera visible par la machine Debian dans /home/votre_dossier/votre_projet_web.

5 – Les virtuals hots

La dernière étape consiste à lier cette machine à votre ordinateur à travers les hosts de celui-ci. Pour cela éditez le fichier /etc/hosts sous MacOs ou c:windowssystem32driversetchots et rajoutez la ligne suivante :

  votre_adresse_ip debian
  Dans mon cas :
  172.16.81.129 debian

Maintenant si vous ouvrez votre navigateur et allez sur http://debian/, vous allez vous connecter à votre machine. Malheureusement, pour l’instant rien ne se passe car nous n’avons pas installé apache. Pour cela lancez les lignes de commandes suivantes :

  apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert

Recommencez, et magie, maintenant vous avec le message :

It works!

This is the default web page for this server.

The web server software is running but no content has been added, yet.

Il ne vous reste plus qu’à configurer Apache comme vous le feriez sur votre serveur de prod avec vos virtual hosts, vos modules apache… La seule petite différence est que lors de la création de votre Virtual Host sur votre ordinateur, il faut déclarer l’ip de votre machine virtuelle plutôt que 127.0.0.1, votre host ressemblera donc à ceci :

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
 votre_adresse_ip monsite1
 votre_adresse_ip monsite2

Les noms de domaine monsite1 et monsite2 iront alors se connecter sur votre machine virtuelle et le virtual host sur celle-ci ressemblera à ça :

        ServerName      monsite1
        DocumentRoot    "/home/projetweb/monsite1"
        DirectoryIndex  index.php

                AllowOverride All
                Allow from All
                Options FollowSymLinks

        LogFormat combined
        TransferLog /dev/null

Voilà, j’expliquerais comment configurer les virtuals host correctement dans un prochain post, en attendant je vous laisse découvrir cette méthode de travail.