Uso dei virtualenv

Quando su una macchina in produzione convivono più istanze e/o più versioni della stessa istanza, si consiglia l’utilizzo dei virtualenv, ovvero degli ambienti virtuali indipendenti dove ogni progetto può utilizzare differenti set di versioni e librerie di Python.

Per utilizzare i virtualenv Genropy mette a disposizione, all’interno del deploybuilder , un comodo script per riportare in un ambiente virtuale i progetti già presenti in un ambiente principale.


Si consiglia innanzitutto di creare una cartella per ospitare i virtualenv nella root principale e di entrare in essa:

mkdir virtualenvs
cd virtualenvs

A questo punto è sufficiente lanciare lo script:

gnr app deploybuilder -e testvenv -c -p sandbox,myfatturazione -b develop
  • con l’attributo -e andiamo a creare la cartella dell’env (testenv), che ospiterà il nostro primo env

  • con l’attributo -c specifichiamo allo script di copiare anche il repository di Genropy

  • con l’attributo -p specifichiamo di copiare i progetti, separati da virgola («sandbox» e «myfatturazione»)

  • con l’attributo -b scegliamo di utilizzare per Genropy il ramo develop

Verranno quindi riproposte nella cartella di destinazione le cartelle genropy e, all’interno della stessa cartella dei progetti (generalmente genropy_projects), i due progetti «sandbox» e «myfatturazione».

Il virtualenv avrà a questo punto un suo environment , non contenuto in .gnr, bensì nella cartella etc/gnr interna al virtualenv.

Una volta attivato l’ambiente virtuale con:

source bin/activate

sarà possibile procedere con il deploybuilder , in maniera analoga al caso standard. Lo script creerà anche un suo gnrdaemon (nel nostro caso gnrdaemon_testvenv) e un suo gnrsiterunner (gnrsiterunner_testvenv).

Suggerimento

Si noti che in caso di avvio/riavvio saranno questi ultimi i processi da riavviare, rendendo le istanze totalmente indipendenti rispetto a quelle principali:

sudo service gnrsiterunner_testvenv stop / start / restart
sudo service gnrdaemon_testvenv stop / start / restart

Autore della sezione: Davide Paci