sterretje-cluster:appcluster-hosting_python

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.

  • sterretje-cluster/appcluster-hosting_python.1476109787.txt.gz
  • Last modified: 2026/05/27 14:01
  • (external edit)