This is an old revision of the document!
Aanleveren van een Python applicatie
Applicaties kunt u zelf plaatsen door ze op de upload-server in de juiste web-app directory neer te zetten. Het is ook mogelijk dit door NPO ICT te laten doen. Wij gaan er dan vanuit dat er 1 complete tar file aangeleverd wordt (bv dmv een url waarvan wij de tar file kunnen downloaden). Vervolgens zullen wij de tar file plaatsen. Wij verwachten dat naast de tar file installatie instructies aangeleverd worden.
Het configureren van de passenger/nginx wordt altijd door NPO ICT gedaan. Idem voor databases.
Het configureren van de applicatie zal meestal in samenspraak tussen NPO ICT en de sitebouwer gebeuren. Zaken waar NPO ICT zich mee bemoeit zijn:
-
Database parameters
config/settings.yml;
de database wordt door NPO ICT aangemaakt. login namen en database passwords zijn daar eventueel op te vragen)
-
Applicatie logfiles;
Een python applicatie wordt geacht te loggen onder
/e/ap/X/log houd er rekening mee dat er altijd meerdere python·
instanties hierin schrijven, maak een apart logfile voor elke instantie,·
neem bijvoorbeeld de uid op in de bestandnaam.
-
tmpdir;
De applicatie tmpdir van een applicatie X wordt geacht te zijn·
/e/ap/X/tmp
-
modules;
Binaire (gecompileerde) modules willen wij graag compileren om makkelijk software en OS upgrades uit te kunnen voeren. Overige modules worden geacht in de applicatie geïnstalleerd te worden.·
-
current
De applicatie wordt geacht te staan in /e/ap/X/pages/current/passenger_wsgi.py
waarbij current meestal een symlink zal zijn naar de meest recente deployments.
Bij initiële oplevering plaatst NPO ICT een hello world applicatie
om een werkende set-up te kunnen tonen.
Deze kunt u uiteraard naar believen overschrijven of verwijderen.
Per applicatie wordt een bijbehorende python 'binary' opgeleverd Voor een applicatie X is dat
/e/ap/X/bin/python
deze sourced z'n environment variabelen uit:
/e/ap/X/bin/env
Gebruik dit ook in je eigen shell om altijd de juiste python te gebruiken voor command-line werk.
source /e/ap/X/bin/env ptyhon --version
Indien gewenst kunnen wij hier meer environment variabelen in opnemen zoals PYTHONPATH of DJANGO_SETTINGS_MODULE.
LET OP: de python-wereld kent zoiets als een virtualenv welke kan worden opgebouwd met 'virtualenv' of met 'pyvenv'. Geen van beide passen in onze hosting omgeving omdat er ofwel binaries worden gecopieerd (!), en dus niet meer onderhouden worden, ofwel omdat er paden gedereferenced worden waardoor bij software updates of storage-onderhoud deze paden niet meer geldig zijn.
Zo maak je je eigen python modules repository:
source /e/ap/X/rails/bin/env pip install --install-option="--prefix=/e/ap/X/pages/env" django
Het herstarten van de applicatie kunt u zelf veroorzaken door een touch van
/e/ap/X/pages/restart.txt uit te voeren.