deploybuilder

Il comando deploybuilder serve per creare automaticamente i file di configurazione necessari all’esecuzione di un’applicazione Genropy in produzione.

Alla prima installazione si dovranno abilitare i servizi gnrdaemon e gnrsiterunner, mentre per ogni nuovo sito si dovrà creare il file di configurazione di Nginx che collegherà la nostra applicazione con un nome di dominio

Avviare gnrdaemon come servizio

Creare una directory genro_conf e spostarsi dentro di essa.

Con il comando:

gnr app deploybuilder -g

si crea il file gnrdaemon.service che è da spostare in /lib/systemd/system/gnrdaemon.service:

sudo mv gnrdaemon.service /lib/systemd/system/gnrdaemon.service

si dovranno cambiare i permessi del file:

sudo chmod 644 /lib/systemd/system/gnrdaemon.service

ricaricare l’elenco dei servizi disponibili:

sudo systemctl daemon-reload

abilitare il servizio per l’avvio automatico:

sudo systemctl enable gnrdaemon.service

avviare il servizio:

sudo systemctl start gnrdaemon.service

Per verificare il funzionamento del servizio si possono usare i seguenti comandi:

sudo systemctl status gnrdaemon.service
sudo journalctl -e -u gnrdaemon.service

Avviare gnrsiterunner come servizio

Similarmente a quanto fatto con gnrdaemon si dovrà configurare l’avvio di supervisord che a sua volta avvierà i processi necessari come gunicorn, gnrasync (per la gestione dei websocket) ed eventuali processi gnrworker (per le esecuzioni programmate dei batch).

Con il comando:

gnr app deploybuilder -s

si crea il file gnrsiterunner.service che è da spostare in /lib/systemd/system/gnrsiterunner.service:

sudo mv gnrsiterunner.service /lib/systemd/system/gnrsiterunner.service

si dovranno cambiare i permessi del file:

sudo chmod 644 /lib/systemd/system/gnrsiterunner.service

ricaricare l’elenco dei servizi disponibili:

sudo systemctl daemon-reload

abilitare il servizio per l’avvio automatico:

sudo systemctl enable gnrsiterunner.service

avviare il servizio:

sudo systemctl start gnrsiterunner.service

Suggerimento

Se quello che stiamo avviando è il primo progetto di Genropy, all’avvio del servizio riscontreremo un errore. Sarà necessario proseguire prima la configurazione di Nginx, e solo dopo ripetere l’avvio di gnrsiterunner

Per verificare il funzionamento del servizio si possono usare i seguenti comandi:

sudo systemctl status gnrsiterunner.service
sudo journalctl -e -u gnrsiterunner.service

Configurazione Nginx

Con il comando:

gnr app deploybuilder -d mio.dominio.com miaapp

creeremo un file miaapp.conf che istruirà Nginx su come rispondere alle chiamate per il dominio (mio.dominio.com nell’esempio), e instradarle verso i processi gunicorn dedicati.

Il file creato andrà copiato nella cartella dei siti di nginx (/etc/nginx/sites-enabled):

sudo mv miaapp.conf /etc/nginx/sites-enabled

Il comando creerà anche automaticamente Il file gunicorn.py nella cartella del sito e modificherà automaticamente la configurazione di supervisor in modo che il servizio gnrsiterunner avvii automaticamente i processi del nostro sito.

Terminata la creazione dei file dovremo riavviare gnrsiterunner e Nginx:

sudo service gnrsiterunner restart
sudo service nginx restart

Certbot

Successivamente, se si desidera proteggere il traffico tramite https, è consigliabile utilizzare Certbot per automatizzare il processo