Déploiement du projet django sur le raspberry pi - jramanath/IoT_Mines GitHub Wiki
Une liste des étapes pour déployer le projet django sur la raspberry pi (rpi) :
-
Créer un environnement virtuel python sur le home et installer les packages nécessaires listés sur le fichier
requirements.txt
situé dans le dossier sensors_manager- pour l'environnement virtuel voir le paragraphe dédié sur le tuto django girls https://tutorial.djangogirls.org/fr/installation/
- pour installer des packages avec un fichier requirements voir : http://stackoverflow.com/questions/7225900/how-to-pip-install-packages-according-to-requirements-txt-from-a-local-directory
-
Cloner le projet sur la rpi, faire un git pull puis basculer sur la bonne branche
-
Copier coller le fichier
setting_env_template.py
le renommer ensettings_env.py
puis compléter les paramètres, définir le dossier accueillant les logsLOGS_DIR
dans le home, exemple :/home/jacques/log/
ainsi que le dossier accueillant les données de capteur si solution locale, exemple/home/jacques/cache/
-
Activer l'environnement virtuel, se placer dans le dossier contenant le fichier
manage.py
de Django puis créer la base de donnée à l'aide de la commandepython manage.py migrate
-
Faire une première exécution à blanc du collecteur pour vérifier son bon fonctionnement en faisant
python manage.py collect_S3
: jeter un oeil aux logs pour voir si tout est ok -
Configurer le cron du serveur pour que notre job défini dans
data_collector/jobs/daily/daily_collect.py
soit lancé toutes les 5 minutes :- faire
crontab -e
puis ajouter une instruction ressemblant à*/5 * * * * /home/path_to_venv/bin/python /home/path_to_django/manage.py runjobs daily
- pour des précision sur cron, voir : https://openclassrooms.com/courses/reprenez-le-controle-a-l-aide-de-linux/executer-un-programme-a-une-heure-differee
- faire
-
Lancer le projet en mode "debug" et en nohup pour qu'il reste actif même si vous vous déconnectez du serveur :
nohup python manage.py runserver &
-
Vérifier le bon fonctionnement de l'exécution du collecteur en déposant si besoin des fichiers json manuellement dans le bucket S3 ou le dossier local
-
Notre pipeline est prêt !
-
BONUS : on pourrait continuer la configuration en installant apache, puis en configurant le
mod_wsgi
de Django pour se mettre dans des conditions "de production" classique- pour apache, voir par exemple http://www.linux-france.org/prj/edu/archinet/systeme/ch16s02.html
- pour mod_wsgi voir https://docs.djangoproject.com/fr/1.10/howto/deployment/wsgi/modwsgi/