computer locale, di configurare e mettere in produzione il progetto, pronto a ricevere visitatori sul vostro dominio. Il tutto con un paio di semplici comandi.
– non ripetere la stessa procedura per ogni sito • Portabilità del progetto su altri server con un impegno minimo • Evitare il login diretto sul server con root o alto utente privilegiato • Dopo il setup, aggiornare in produzione con un solo comando • Velocità! ( update → syncdb → migrate → collectstatic → riavvio ) • Test automatici della configurazione, SEMPRE, ad ogni comando • Modularità e flessibilità perché ho creato
tutti I parametri del nostro progetto. $ touch fabfile.py Meglio ancora! Copiare il file example_fabfile.py collocato nella cartella “fagungis” dentro al PYTHONPATH: $ cp /path/to/fagungis/example_fabfile.py fabfile.py Oppure direttamente dal repository di FAGUNGIS: $ wget -O fabfile.py https://bitbucket.org/DNX/django-fagungis/raw/tip/fagungis/example_fabfile.py fabfile.py Questo file è meglio tenerlo nella root del vostro progetto django, sotto controllo versione, in quanto le modifiche a questo andranno a rispecchiare le modifiche al vostro progetto. configuriamo
delle modifiche in base alle nostre esigenze. Ogni parametro è anticipato da una o più righe di commento che spiegano lo scopo di questo. Si possono tenere i valori di default, cambiando solo: • Nome del progetto, esempio “djangoday” • Repository • Host del server • Dominio, esempio “djangoday.it” configuriamo
semplice: $ fab djangoday setup Per prima cosa, in un qualsiasi task FAGUNGIS, viene testata la vostra configurazione. In caso di errori, FAGUNGIS si ferma e li mostra a video. usare
osserverete sul monitor un elenco contenente i nomi dei parametri e i rispettivi valori. Verificate e confermate di voler andare avanti con una “Y” e INVIO. A questo punto sul monitor si vedranno scorrere tutti i comandi che FAGUNGIS lancia sul server remoto e il loro output. usare
le dipendenze di sistema(pacchetti Debian/Ubuntu) • creato l'utente django • creato la struttura delle cartelle(/opt/django/, logs/ scripts/ ...) • clonato il repository del progetto • creato il virtualenv • installato Gunicorn • installato le dipendenze del progetto(con pip -r requirements.txt) • caricato le configurazioni per nginx e supervisor • caricato lo script per far partire gunicorn capire
codice del progetto • installa le dipendenze (con pip -r requirements.txt) • carica le configurazioni per nginx e supervisor • carica lo script per far partire gunicorn • prepara il progetto django (syncdb, migrate, collectstatic) • prepara la cartella media (la crea e verifica i permessi) • riavvia supervisor capire
django_fagungis_testproject # fabfile.py presente $ virtualenv /tmp/testenv $ source /tmp/testenv/bin/activate (testenv)$ pip install -r requirements/project.txt # cambiare env.nginx_server_name # oppure aggiungere in /etc/hosts <server-ip> fagungis.test $ fab fagungis_test setup Ora aprite il vostro browser e navigate fino a http://fagungis.test
• Configurare sottodomini • Scaricare i log + visualizzazione • Monitoraggio remoto(real time, status, meminfo...) • Migliorare il feedback • Consigli su come risolvere eventuali errori • Configurare il numero di worker_connections per gunicorn • Supporto per Git-SVN-bzr • Caricamento diretto dal vostro workspace (senza hg) • Molto altro ancora...