Installer Vagrant et Homestead

Voici le premier vrai article de ce blog (moment historique s’il en est!). Nous allons donc nous intéresser à l’installation de Vagrant avec la virtual box Homestead.

Vagrant, c’est quoi?

En gros, Vagrant est un outil de développement qui va vous permettre d’émuler une installation de serveur Linux pour pouvoir travailler au plus proche de votre environnement de production, qui sera justement du Linux (a priori, puisque vous faites du php). Ceci peut se révéler intéressant si vous êtes un habitué de WAMP (MAMP, …) et que vous rencontrez parfois des soucis au moment de la mise en production de vos applications. Par exemple, php ne se comportera pas exactement de la même manière dans un environnement Windows (avec WAMP) que dans un environnement Linux. Ce qui peut, dans certains cas, poser des problèmes . Avec Vagrant, vous allez pouvoir créer un environnement de développement au plus proche de votre environnement de production et donc diminuer fortement le risque de rencontrer des bizarreries en tous genres au moment du passage du serveur de développement vers le serveur de production. Si vous travaillez en équipe, ça va aussi vous permettre d’utiliser la même configuration de machine virtuelle pour tout le monde!

Et Homestead dans tout ça?

Homestead, quand à lui, est une virtual box préparée par Taylor Otwell (la personne à l’origine de Laravel). La virtual box, c’est un environnement virtuel Vagrant avec une série de paramètres spécifiques. Il va être très intéressant pour nous de l’installer pour trois raisons principales: Premièrement, il a été concu par le créateur de Laravel, avec comme optique d’optimiser la configuration pour le développement avec ce framework en particulier (soit dit en passant, vous pouvez bien-sûr aussi utiliser Homestead sans Laravel). Deuxièmement, lorsque vous rencontrerez un problème en cours de développement d’une application avec Laravel. Si vous postez sur un forum (par exemple Stack Overflow) pour obtenir de l’aide, il sera facile pour les gens qui vous aiderons de connaitre la configuration de votre serveur, puisqu’elle est la même pour tous les utilisateurs de Homestead. Ce qui permettra d’avoir une expérience unifiée pour tous les développeurs Laravel/Homestead. Enfin, Taylor Otwell nous propose Forge, un service payant permettant de mettre notre application en ligne sur une configuration serveur identique à la configuration de Homestead! Il suffit de choisir un fournisseur d’hébergement cloud dans la liste de ceux supportés par Forge et de faire quelques petits réglages pour avoir notre serveur sur pied. Super facile! Quelques services additionnels, comme la planification de tâche, sont aussi proposées par Forge.

Installation de Vagrant

Maintenant que vous savez dans les grandes lignes pourquoi il est utile de travailler avec Vagrant, voyons comment installer celui-ci. Personnellement, je suis un utilisateur de Windows. Je n’ai donc pratiqué l’installation de Vagrant que sous cet environnement en particulier. La démarche est similaire avec les autre OS.

Installer les logiciels

  • Pour commencer, il vous faudra installer VirtualBox. Je vous laisse sélectionner, sous la section ‘Downloads’, les fichiers d’installation qui correspondent à votre système d’exploitation.
  • Il vous faudra évidemment aussi installer Vagrant.
Pour les utilisateurs de Windows Enfin, concernant ceux d’entre vous qui développent avec Windows, vous aurez aussi besoin de Git pour Windows. Et ce, de manière à permettre à Windows de faire fonctionner les commandes git (et plein d’autres trucs intéressants :) ).

Vérifier que Vagrant est fonctionnel

Pour vérifier que l’installation de Vagrant s’est bien passée, vous pouvez ouvrir une fenêtre de shell et lancer la commande suivante:

Le numéro de votre version de Vagrant devrait alors s’afficher.

Pour Windows, vous pouvez faire ça avec Git Bash, qui est fraichement installé avec Git pour Windows. Git Bash

Installation de Homestead

Vous trouverez la documentation pour faire cette installation sur le site officiel de Laravel. Je n’ai pas trouvé la procédure d’installation de Homestead dans la documentation française (mais j’ai peut-être mal regardé). Voici, en résumé, la marche à suivre:

- Récupérer la box laravel/homestead

- Cloner le dépôt git de Homestead

Vous pouvez maintenant cloner le dépôt distant de Homestead dans un dossier local. Appelez ce dossier local comme vous le souhaitez (ex: c:/Homestead). Vous pourrez ensuite héberger tous vos projets de développement Laravel sous ce dossier parent.

Cette commande est simple. Elle demande le clonage du dépôt git de Homestead. Vous allez donc récupérer une copie du contenu de celui-ci sur votre machine. Pour voir ce qu’il nous reste à paramétrer, ouvrez le fichier de configuration de Homestead.yaml (qui se trouve dans le dossier dans lequel vous avez cloné le tout, dans mon exemple “c:/Homestead”). Vous devriez avoir ceci :

Ce fichier inclut une série de valeurs par défaut. Faisons rapidement le tour. authorize : le chemin vers votre clé publique ssh (l’explication arrive plus bas) keys le chemin vers votre clé privée ssh (explication plus bas aussi) folders: - map : Correspond au chemin de votre dossier développement sur votre machine local - to : Son chemin d’accès sur votre machine virtuelle Ces dossiers sont “synchronisés”. Ce qui signifie que tout changement dans un fichier du dossier map se répercutera dans le dossier to, et inversément. sites: - map : Le nom que vous choisirez pour l’accès à votre application via le navigateur - to : Le chemin qui doit être appelé lorsque l’on accède à map variables : C’est ici que vous pouvez ajouter des variables d’environnement

Configurer la clé SSH

Si vous n’avez pas de clé publique SSH, vous pouvez facilement la générer avec la commande suivante sous Linux et MacOs:

Sous Windows, c’est un petit peu plus compliqué. Voici la marche à suivre: – Télécharger PuTTY SSH client et PuTTYgen depuis l’adresse http://www.chiark.greenend.org.uk/~sgtatham/putty/download.htmlGénérer une clé privée avec PuTTY Pour ce faire, lancer PuTTYgen et cliquer sur “generate”. Il vous sera demandé de bouger votre souris de manière aléatoire pour générer une clé aléatoire (ne me demandez pas comment ça fonctionne :) ). Quand c’est fait, cliquez sur “load” et trouvez le fichier “insecure_private_key”. Il sera normalement dans votre dossier ”.vagrant.d” (sous Windows 7, c’est dans le dossier C:\Users\[votre_nom_d_utilisateur]\.vagrant.d). Vous pouvez maintenant sauver vos clé publique et privée. Dans mon cas, j’ai créé le dossier ‘ssh’ dans c:/Homestead. J’ai ensuite enregistré les fichiers clés sous c:/Homestead/ssh/id_rsa.pub pour la publique et c:/Homestead/ssh/id_rsa.ppk pour la privée. Voici le fichier Homestead.yaml modifié pour correspondre à nos emplacements de dossiers et fichiers:

- Modifier le fichiers hosts

Ouvrez votre fichier hosts

  • Windows : C:\Windows\System32\drivers\etc\hosts
  • Autres OS :  /etc/hosts

Et ajoutez 127.0.0.1 monsite.app (conformément à l’exemple ci-dessus) en bas du fichier.

Lancer la machine virtuelle

Ca y est, on touche enfin au but! Pour lancer votre machine virtuelle, placez vous dans votre dossier Homestead et lancer la commande

Le suspense est intense. Je croise les doigts pour vous! Si une erreur est survenue, repasser rapidement le tuto en revue et vérifiez que vous avez bien tout suivi. Si tout s’est bien passé, vous allez pouvoir vous connecter en ssh sur votre machine virtuelle avec la commande suivante:

Si vous avez la même arborescence que la mienne, vous allez pouvoir accéder à votre dossier d’exemple et tapant

Créez ensuite un fichier pour tester tout ça dans le navigateur:

Puis ajouter

et sauvez (esc, w, q, Entrée). Visitez ensuite http://monsite.app:8000/ Voilà, votre belle page php. L’instant est émouvant.

Conclusion

Vous avez maintenant une installation fonctionnelle de Homestead avec Vagrant. Vous trouvez peut-être que ça fait beaucoup de boulot par rapport à une bonne vieille installation de WAMP. Mais n’oubliez pas que tout ce qu’on a fait ici va nous permettre d’avoir des environnements homogènes et ça vaut vraiment la peine! Et ce, notamment avec Forge. Car, si comme pour moi, l’administration de serveur n’est pas votre rayon, vous allez pouvoir très facilement obtenir un environnement de production identique à l’environnement de développement que vous venez de mettre en place. Pas mal, non? Nous verrons prochainement comment tirer parti de tout ça avec Forge. Nous verrons aussi d’autres choses passionnantes et moins laborieuses, c’est promis ;)

1 commentaire pour “Installer Vagrant et Homestead

  1. thibault V.
    27 janvier 2015 à 23 h 31 min

    Merci pour le tuto.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *