3 vagrant
Martin Pepin edited this page 2017-02-13 21:34:27 +01:00

Utilisation de la VM

Installation

La façon recommandée de simuler GestioCOF sur votre machine est d'utiliser Vagrant. Vagrant permet de créer une machine virtuelle minimale sur laquelle tournera GestioCOF; ainsi on s'assure que tout le monde à la même configuration de développement (même sous Windows !), et l'installation se fait en une commande.

Pour utiliser Vagrant, il faut le télécharger et l'installer.

Vagrant permet d'utiliser différents types de machines virtuelles; par défaut il utilise Virtualbox qu'il vous faudra également télécharger et installer.

L'installation est terminée.

Utilisation

Premier lancement

Machine virtuelle

Le lancement se fait avec la commande vagrant up dans le répertoire du dépot local.

À son premier lancement, Vagrant va télécharger une image d'Ubuntu ainsi que des mises à jour (il vaut mieux avoir une connexion Internet pas trop mauvaise)

Paquets Python

Pour mettre à jour les paquets Python, il faut d'abord se connecter à la machine virtuelle en utilisant vagrant ssh, puis utiliser la commande suivante : pip install --upgrade -r requirements-devel.txt

Pour mettre à jour les modèles après une migration, il faut ensuite faire : python manage.py migrate

Utilisations suivantes

Voici quelques commandes importantes pour gérer la machine virtuelle :

  • vagrant up permet de lancer la machine virtuelle. Si une machine virtuelle existe déjà, elle sera réutilisée ; sinon, Vagrant va créer et configurer une nouvelle machine virtuelle pour vous.

  • vagrant suspend permet de sauver l'état de la machine virtuelle sur le disque pour la relancer plus tard (y compris après un reboot) avec vagrant up

  • vagrant halt permet d'éteindre la machine virtuelle (par comparaison avec vagrant suspend, cela prend moins de place sur le disque car il n'y a pas besoin de sauver la RAM, mais la recréation avec vagrant up sera plus lente)

  • Enfin, vagrant destroy permet de détruire complètement la machine virtuelle : lors du prochain appel de vagrant up, elle sera réinstallée de zéro. Attention, contrairement aux deux méthodes précédentes, vagrant destroy détruira irrémédiablement le contenu de votre base de données locale, si elle vous est d'un quelconque intérêt, réfléchissez à deux fois !

  • vagrant ssh vous connecte en SSH à la machine virtuelle.

Une fois connecté en SSH, vous pouvez utiliser les commandes Django habituelles.

Lancement du serveur

Par défaut Django n'écoute que sur l'adresse locale de la machine virtuelle - or vous voudrez accéder à GestioCOF depuis votre machine physique.

Pour lancer le serveur, il faut donc lancer la commande python manage.py runserver 0.0.0.0:8000.

Le dossier avec le code est partagé entre la machine virtuelle et votre machine physique : vous pouvez donc utiliser votre éditeur favori pour coder depuis votre machine physique, et les changements seront répercutés automatiquement dans la machine virtuelle.

You know sometimes…

Des fois on essaye des trucs, on rate une migration, on s'assoie sur son clavier et PAF on casse la base de donnée. Même si le très radical vagrant destroy && vagrant up est une solution, elle est un peu longue. Il est possible de repartir avec une base de donnée fraîche en tapant les commandes suivantes

mysql -uroot -p$DBPASSWD -e "DROP DATABASE $DBNAME; CREATE DATABASE $DBNAME"
python manage.py migrate
# La suite n'est pas garantie de marcher ailleurs que sur la branche master
python manage.py loaddata gestion sites articles
python manage.py syncmails
python manage.py loaddevdata