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 envcon l’attributo
-c
specifichiamo allo script di copiare anche il repository di Genropycon 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