Skip to content

Instantly share code, notes, and snippets.

@matyo91
Last active December 22, 2015 07:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save matyo91/6439249 to your computer and use it in GitHub Desktop.
Save matyo91/6439249 to your computer and use it in GitHub Desktop.
Vagrant est un outil qui permet de configurer des machine virtuelles prètes à l'emploi. La finalité étant que tout les développeurs travaillent sur le même environnement par projet. Il n'est plus possible de dire : 'le projet ne fonctionne pas sur ma machine'.
# Installation
[Installer la dernière version de VirtualBox](https://www.virtualbox.org/wiki/Downloads)
[Installer la dernière version de Vagrant](http://downloads.vagrantup.com/)
# Utilisation
Via le terminal, naviguez vers le dossier racine de votre projet. L'utilisation principale à retenir est la suivante :
$ vagrant up
Cette commande va configurer automatiquement la machine virtuelle pour le projet.
$ vagrant ssh
Cette commande vous loggue en ssh sur la machine virtuelle
$ vagrant halt
Cette commande stoppe correctement la machine virtuelle
$ vagrant reload
Cette commande est un alias de $ vagrant halt puis $ vagrant up
$ vagrant destroy
Cette commande detruit la machine virtuelle
# Avancé : configuration de vagrant pour le projet
## Création de la boxe
Le plus simple est de télécharger directement une boxe sur des listes publiques :
- http://www.vagrantbox.es/
- http://puppet-vagrant-boxes.puppetlabs.com/
Sinon voici la procédure à suivre pour la création de la boxe à la main (exemple : d'une Debian Wheezy)
- Télécharger l'image Debian Wheezy Netinstall CD
- Ouvrir VirtualBox
- Créer une nouvelle machine virtuelle 'wheezy64'
- Accepter les paramètres par défaut et désactiver 'Audio' et 'USB'
- Ajouter l'image ISO en tant que CD de démarrage
- Installer
- Choisir le 'Language' English
- Choisir le 'Country' France
- Choisir en_US pour la locale
- Choisir France pour le keymap
- Choisir le nom d'hôte : vagrant-debian-cheezy
- Choisr le domaine : vagrantup.com
- Choisir le mot de passe root : vagrant
- Choisir l'utilisateur vagrant et mot de passe vagrant
- Choisr le système de partion par défaut (all one partition)
- Choisir l'url du manageur de packet par defaut
- Choisir 'Ne pas utiliser le système de mise à jour automatique'
- Choisir 'Ne pas participer à la notification'
- Ensuite : Cocher uniquement 'Standard system utilities'
- Choisir GRUB par défaut
- Reboot
On installe des packets de base. Se logger en tant que root
$ apt-get install build-essentials module-assistant
$ m-a prepare
$ apt-get install openssh-server zerofree ruby1.9 sudo
$ gem install chef --no-ri --no-rdoc
$ mkdir /home/vagrant/.ssh
$ cd /home/vagrant/.ssh
$ wget https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub
$ mv vagrant.pub authorized_keys
$ cd -
$ chmod 700 /home/vagrant/.ssh
$ chown -r vagrant:vagrant /home/vagrant/.ssh
Ajouter la ligne a /etc/sudoers
vagrant ALL=(ALL) NOPASSWD: ALL
Installer les Guest Additions VirtualBox :
$ mount /media/cdrom
$ sh /media/cdrom/VBoxLinuxAdditions.run
Alléger la taille de la boxe :
# Remove shared docs
$ rm -rf /usr/share/doc
# Remove guest addition source (not needed by VirtualBox anymore)
$ rm -rf /usr/src/vboxguest*
$ rm -rf /usr/src/virtualbox-ose-guest*
# Remove linux headers
$ rm -rf /usr/src/linux-headers*
# Remove cache
$ find /var/cache -type f -exec rm -rf {} \;
# Remove locales `en_US` and a few others are not removed
$ rm -rf /usr/share/locale/{af,am,ar,as,ast,az,bal,be,bg,bn,bn_IN,br,bs,byn,ca,cr,cs,csb,cy,da,de,de_AT,dz,el,en_AU,en_CA,eo,es,et,et_EE,eu,fa,fi,fo,fr,fur,ga,gez,gl,gu,haw,he,hi,hr,hu,hy,id,is,it,ja,ka,kk,km,kn,ko,kok,ku,ky,lg,lt,lv,mg,mi,mk,ml,mn,mr,ms,mt,nb,ne,nl,nn,no,nso,oc,or,pa,pl,ps,pt,pt_BR,qu,ro,ru,rw,si,sk,sl,so,sq,sr,sr*latin,sv,sw,ta,te,th,ti,tig,tk,tl,tr,tt,ur,urd,ve,vi,wa,wal,wo,xh,zh,zh_HK,zh_CN,zh_TW,zu}
Revenir au single user mode en tapant
init 1
Libérer l'espace disque avec zerofree
$ mount -o remount,ro /dev/sda1
$ zerofree /dev/sda1
Enfin arrêter la machine virtuelle.
$ poweroff
Puis packer la box :
$ vagrant package --base wheezy64
Et voilà. Plus d'infos sur l'expérience de bloggeurs :
- http://blog.codeboutique.com/post/creating-debian-squeeze-box-for-vagrant
- https://mikegriffin.ie/blog/20130418-creating-a-debian-wheezy-base-box-for-vagrant/
- http://dominique.broeglin.fr/2012/02/25/wheezy-64-vagrant-base-box.html
## Configuration d'un dépot Vagrant
Le plus simple est de prendre exemple sur une configuration de fichier de base :
- https://github.com/kasperisager/vagrant-lnpp
- https://github.com/bryannielsen/Laravel4-Vagrant
- https://puphpet.com/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment