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