- Modifié
Dans ce tutoriel nous allons créer un environnement de développement avec Vagrant. Nous allons y configurer nodejs et php avec nginx.
Introduction
Disclaimer
Si vous n'avez pas un minimum de connaissances linux ce tutoriel n'est malheureusement pas pour vous. Il s'adresse à un public avancé.
Je suis un fan de la doctrine RTFM , et pour cause j'ajouterai souvent un lien vers la documentation lié à la tâche en cours. Utilisez ces liens à bon escient, ou juste par curiosité. Si vous exécutez ce tutoriel juste en faisant des copier/coller vous n'apprendrez pas grand chose.
Retrouvez aussi ce tutoriel et le code complet sur github !
C'est quoi Vagrant ?
Vagrant est un logiciel multi plateforme qui permet de créer et configurer des environnement "reproductibles, portables et légers". Imaginez que c'est un outil de création de machines virtuelles. Le must c'est que Vagrant s'occupe de pleins de choses tout seul : réseau, dossier partagé nfs, provisioner (ie: shell, ansible, chef), déploiements etc.
Nous allons utiliser vagrant afin :
La liste des commandes principales :
Chef est ce que Vagrant appelle un "Provisionner". En gros, c'est un outil (super ultra trop beaucoup puissant) qui permet d'installer et de configurer des environnements. Nous pouvons le comparer avec son homonyme Puppet, voir le système plus léger qu'est Ansible.
Chef est très (trop ?) puissant. Je trouve que quand on essaie de comprendre son fonctionnement sans contexte c'est très difficile et peut en freiner beaucoup. Ici nous allons utiliser chef-solo (documentation vagrant). C'est une version open source du client Chef qui peut être installé localement (sans serveur Chef). Il va nous servir à profiter de quelques 2416 recettes (plus communément appelées "cookbooks").
Chef va servir à installer ici tout ce dont on a besoin (nodejs, php, nginx).
À quoi ça sert tout ça ?
Grâce à Vagrant vous pouvez ensuite partager votre box, box qui n'est conçue que de fichiers de configuration. Très pratique quand plusieurs développeurs veulent avoir le même environnement sur lequel travailler. Ou par exemple pour lancer des tests sur Debian, ubuntu et centos en même temps depuis une seule machine avec une seule configuration !
Il est très pratique quand on veut garder un système propre. Par exemple d'installer des bases de données sur son ordinateur (postgres, mysql, redis, memcached etc). Ou encore de batailler avec nginx et apache qui se chevauchent suivies d'un reste de lighthttpd.
De plus les instructions qui suivent devraient être les mêmes sous linux, windows et osx !
Maintenant que nous sommes dans le bain, ou plutôt la soupe, nous allons établir un plan d'action.
À l'attaque !
Nos besoins :
Introduction
Disclaimer
Si vous n'avez pas un minimum de connaissances linux ce tutoriel n'est malheureusement pas pour vous. Il s'adresse à un public avancé.
Je suis un fan de la doctrine RTFM , et pour cause j'ajouterai souvent un lien vers la documentation lié à la tâche en cours. Utilisez ces liens à bon escient, ou juste par curiosité. Si vous exécutez ce tutoriel juste en faisant des copier/coller vous n'apprendrez pas grand chose.
Retrouvez aussi ce tutoriel et le code complet sur github !
C'est quoi Vagrant ?
Vagrant est un logiciel multi plateforme qui permet de créer et configurer des environnement "reproductibles, portables et légers". Imaginez que c'est un outil de création de machines virtuelles. Le must c'est que Vagrant s'occupe de pleins de choses tout seul : réseau, dossier partagé nfs, provisioner (ie: shell, ansible, chef), déploiements etc.
Nous allons utiliser vagrant afin :
- d'utiliser le "provisioner" chef solo et Berkshelf (un gestionnaire de cookbooks)
- de gérer les hosts avec le plugin HostManager (bon à savoir il existe une pléiade de plugins)
La liste des commandes principales :
vagrant --help
C'est quoi Chef ?Chef est ce que Vagrant appelle un "Provisionner". En gros, c'est un outil (super ultra trop beaucoup puissant) qui permet d'installer et de configurer des environnements. Nous pouvons le comparer avec son homonyme Puppet, voir le système plus léger qu'est Ansible.
Chef est très (trop ?) puissant. Je trouve que quand on essaie de comprendre son fonctionnement sans contexte c'est très difficile et peut en freiner beaucoup. Ici nous allons utiliser chef-solo (documentation vagrant). C'est une version open source du client Chef qui peut être installé localement (sans serveur Chef). Il va nous servir à profiter de quelques 2416 recettes (plus communément appelées "cookbooks").
Chef va servir à installer ici tout ce dont on a besoin (nodejs, php, nginx).
À quoi ça sert tout ça ?
Grâce à Vagrant vous pouvez ensuite partager votre box, box qui n'est conçue que de fichiers de configuration. Très pratique quand plusieurs développeurs veulent avoir le même environnement sur lequel travailler. Ou par exemple pour lancer des tests sur Debian, ubuntu et centos en même temps depuis une seule machine avec une seule configuration !
Il est très pratique quand on veut garder un système propre. Par exemple d'installer des bases de données sur son ordinateur (postgres, mysql, redis, memcached etc). Ou encore de batailler avec nginx et apache qui se chevauchent suivies d'un reste de lighthttpd.
De plus les instructions qui suivent devraient être les mêmes sous linux, windows et osx !
Maintenant que nous sommes dans le bain, ou plutôt la soupe, nous allons établir un plan d'action.
À l'attaque !
Nos besoins :
- Debian
- Nodejs
- Php
- Nginx