Image of an arrow

Moderniser ses procédures de déploiement avec Vagrant

Avatar

vdupras

Vagrant LogoDans le domaine de la consultation dans le web, un des problèmes récurrents est la difficulté associée à la mise en place d’un environnement de développement pour chaque projet. Si on est chanceux et que les instructions textuelles d’installation d’environnement sont toujours à jour, ce n’est qu’une question de minutes pour un développeur expérimenté, mais pour un débutant ou un intégrateur, c’est autre chose. On ne comprend pas toujours bien les instructions, ou notre système est différent de celui du développeur (ici, nos développeurs sont sous Linux, mais nos intégrateurs sont sous Mac OS X). Il n’en faut pas plus pour rapidement perdre plusieurs heures.

Chez SFL, nous avons récemment commencé à intégrer Vagrant à nos projet afin de moderniser nos méthodes de déploiement et les résultats jusqu’ici sont très encourageants.

Qu’est-ce que Vagrant?

Vagrant est un outil de ligne de commande pour contrôler la mise en place de machines virtuelles avec VirtualBox. Elle permet, en une seule commande, la création et la configuration d’une machine virtuelle à partir de rien du tout. Pour la partie configuration, elle est intégrée avec Puppet, un utilitaire de configuration d’environnement souvent utilisé par les administrateurs systèmes pour gérer leurs différentes machines (d’ailleurs, c’est ce que nous utilisions déjà chez SFL).

Avantages

Rapidité de création d’environnements de développement. Ce qui naguère était une liste d’instructions plus ou moins complexes qui prenaient souvent longtemps à executer manuellement est maintenant une seule commande. Par exemple, pour nos projets Django (qui utilisent Fabric), il suffit d’avoir VirtualBox, Vagrant et Fabric d’installé pour pouvoir, à partir de rien, faire rouler le site localement avec cette seule commande:

fab deploy

Exactitude de la configuration de l’environnement. Fini les procédures d’installation qui tombent en désuètude. Si le code Puppet n’est plus à jour, la mise en place automatique ne se fait plus, ce qui est très facile à détecter et à corriger.

Environnements de développement et de production homogène. La communication entre le monde du développement et le monde de l’administration système ne se fait pas toujours parfaitement. Avec un script Puppet pour décrire l’environnement nécessaire pour faire rouler le projet, il est beaucoup plus facile pour l’équipe des administrateurs système de savoir avec exactitude le genre d’environnement qu’ils doivent créer pour accueillir le site de production.

Comment l’utiliser?

La façon d’utiliser Vagrant dépend toujours un peu de la nature du projet. Par exemple, nos projets Django sont déployés avec un amalgame de commandes Fabric et de configuration Puppet. Le côté Puppet s’occupe des virtualhosts, les bases de données et des « .deb » à installer, et le script Fabric s’occupe de pousser le code par SSH, créer le « virtualenv », s’occuper des dépendances Python, faire les migrations South, etc.

Je viens de mettre en ligne sur notre compte Github un exemple de projet Django intégré avec Vagrant pour vous donner une idée de la structure d’un tel projet et aussi faire la démonstration de sa facilité d’installation. Si vous avez Git, VirtualBox, Vagrant et Fabric d’installé sur votre machine, il vous suffit de rouler ceci:

git clone https://github.com/savoirfairelinux/django-vagrant-demo
cd django-vagrant-demo/deploy
fab deploy

Votre mot de passe vous sera demandé car Vagrant a besoin de privilèges administratifs pour modifier le fichier « /etc/hosts ». Le script Fabric aussi d’ailleurs.


Articles similaires

Image of an arrow

Le développement Android progresse constamment avec de nouvelles fonctionnalités pour faciliter la création d’applications. Construction d’interface utilisateur avec Jetpack Compose, injection de dépendances avec Hilt, extensions de développement de jeux, librairies de compatibilité emoji, et la liste continue. Les nouveaux projets n’ont aucun souci à prendre avantage de ces nouvelles fonctionnalités. Cependant, les projets anciens […]

En juin dernier, Savoir-faire Linux a participé à la 10ᵉ édition du DrupalCamp Montréal, qui a eu lieu à l’Université Concordia. Ce fût l’occasion de voir une bonne partie de la communauté de développeurs Drupal montréalaise, d’échanger avec les autres entreprises qui travaillent avec cette technologie et de faire l’état de l’évolution de Drupal de […]

Thumbnail image

Développement Web Bien démarrer avec le rendu côté serveur avec Angular Par Kévin Barralon Cette semaine, nous avons mis en ligne un tutoriel pour les développeurs qui utilisent le framework JavaScript Angular. Ce tutoriel a pour but de les aider à initialiser un projet Angular avec le rendu côté serveur pré-configuré. L’intérêt de la mise […]

Gestion du rendu côté serveur : Une nouveauté Angular imposant un défi Angular est un framework utilisant le langage de programmation TypeScript. La version 5 a été mise en ligne en novembre 2017, avec de nouvelles fonctionnalités et corrections de bugs. Cette dernière version est accompagnée de l’outil en ligne de commande Angular CLI, mais […]

Thumbnail image

Design Qu’est ce que design system ? Par Patrick Bracquart Depuis plusieurs années, la complexité des sites et applications nous ont poussé à repenser le design et les méthodologies tant les champs de compétences nécessaires se sont élargis (analyste web, designer UI/UX, designer d’interaction, développeur front-end, …). C’est dans ce contexte qu’est apparu le design […]