Featured Post

Installare e configurare un server GIT

Sistema Operativo : UBUNTU Installazione di git Per installare git utilizzare: 1apt-get install git-core Installazione di gitosis gitosis è che lo strumento che permette la gestione e configurazione dei repository remoti. Per l’installazione si procede con aptitude: 1apt-get install gitosis Ora...

Read More

Python – Individuare la directory delle librerie

Posted by admin | Posted in Python, Tips | Posted on 29-03-2012

Tag:

0

Per capire in che directory Python cerca le librerie (site-packages) basta eseguire il seguente comando da shell:

1
python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

oppure da shell di Python:

1
from distutils.sysconfig import get_python_lib
2
print get_python_lib()

Accesso ed analisi di Open Data: come gestire l’anarchia dei formati

Posted by admin | Posted in Data Interoperability, Open Data | Posted on 26-03-2012

Tag:, ,

0

Ecco la presentazione che abbiamo esposto al Codemotion 2012 di Roma (Diego Banchero, Eugenio Minardi di Wellnet e Matteo Picozzi PhD student al Politecnico di Milano). La presentazione è focalizzata appunto alla gestione dell’anarchia dovuta all’eterogeneità dei formati a disposizione.

Configuration Management & Continuous Integration con Puppet e Jenkins CI

Posted by admin | Posted in Continuous Integration, Project Management | Posted on 26-03-2012

0

Uno strumento comodo per gestire la dinamicità delle istanze EC2 di Amazon e di macchine virtuali in cloud in genere è Puppet. Grazie a questo strumento si semplifica il processo di Cloud Management e quindi nel caso più generico di Configuration Management.

Puppet è gratuito fino a 10 nodi ed è reperibile all’indirizzo http://puppetlabs.com/ esso è integrabile con Jenkins CI per fornire appunto funzionalità di Continuous Integration. Per farli lavorare insieme ci sono i due riferimenti, dal sito di Jenkins https://wiki.jenkins-ci.org/display/JENKINS/Puppet e dal sito di Puppet http://projects.puppetlabs.com/projects/1/wiki/Development_Puppet_Continuous_Integration

Jenkins e la sua documentazione sono reperibili al sito http://jenkins-ci.org/

Codemotion 2012 – ROMA 23+24.03.2012

Posted by admin | Posted in Eventi | Posted on 10-01-2012

Tag:,

0

A ROMA, OLTRE IL CODICE C’È L’EMOZIONE

La seconda edizione del Codemotion, l’evento aperto a tutti i linguaggi e tecnologie, si terrà il 23 e 24 marzo 2012 a Roma. Le novità principali del Codemotion 2012 consisteranno in: due giorni di interventi tecnici e doppio evento in contemporanea a Roma e Madrid.

Il prolungamento, da uno a due giorni, sarà l’occasione per distribuire le attività del Codemotion in un arco temporale più vasto. I partecipanti avranno così la possibilità di poter seguire i talk da loro desiderati con minore probabilità di incorrere nel rischio di sovrapposizioni di interventi.

La contemporaneità fra Roma e Madrid permetterà di costruire un evento che unirà le due capitali attraverso la passione per la tecnologia e per la programmazione. Codemotion Roma e Codemotion Madrid sono organizzati con lo stesso spirito e format, i protagonisti saranno i contenuti tecnici e le Codemotion People.

Il Codemotion si terrà a Roma il 23 e 24 marzo 2012.
L’ingresso all’evento è come sempre gratuito.

Partecipa a Codemotion 2012!

Installare e configurare un server GIT

Posted by admin | Posted in GIT, Versioning | Posted on 30-05-2011

Tag:, , ,

0

Sistema Operativo : UBUNTU

Installazione di git
Per installare git utilizzare:

1
apt-get install git-core

Installazione di gitosis
gitosis è che lo strumento che permette la gestione e configurazione dei repository remoti. Per l’installazione si procede con aptitude:

1
apt-get install gitosis

Ora è necessario stabilire un ordine per i progetti. Per cui si procede creando un utente git con home folder appunto nella cartella /home/git per creare l’utente eseguire il seguente comando:

1
sudo adduser \ 
2
     --system \ 
3
     --shell /bin/sh \ 
4
     --gecos 'git version control' \ 
5
     --group \ 
6
     --disabled-password \ 
7
     --home /home/git \ 
8
     git

Anche l’uso del copia ed incolla è ammissibile, dato che le linee sono correttamente separate.

Fino ad ora si è lavorato sulla macchina server, è ora necessario trasferire in qualche modo la chiave rsa del client in una cartella temporanea del server. Per generare la chiave sul client si usa:

1
ssh-keygen -t rsa

La coppia di chiavi viene creata in locale, nella cartella home all’interno di .ssh/ il file che interessa a noi è id_rsa.pub, la chiave pubblica.

Bisogna ora copiare in qualche modo il file sul server all’interno della cartella /tmp in modo da poter eseguire sul server il seguente:

1
sudo -H -u git gitosis-init < /tmp/id_rsa.pub

Questo comando crea un repository git utilizzato dall’utente possessore della chiave per poter configurare gitosis da remoto. Tutte le configurazioni d’ora in poi verranno trattate come un repo di git.

Per correttezza è necessaria la modifica di alcuni permessi nel caso in cui non fossero già correttamente impostati:

1
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

Ora possiamo proseguire dalla macchina locale, proprietaria della chiave pubblica che abbiamo usato. Cloniamo il repository per la configurazione:

1
git clone git@NOME_SERVER:gitosis-admin.git

Tutte le configurazioni avverranno d’ora in poi in locale, si modifica il repository locale e si effettua il push verso il server.

Per aggiungere utenti è necessario raccogliere le loro chiavi all’interno della cartella apposita, i nomi del file devono essere composti cosi NOME_UTENTE@NOME_COMPUTER.pub e il nome utente in essi contenuto deve coincidere sia coll’effettivo nome utente che con il nome del file.

Un esempio di file di configurazione gitosis.conf è il seguente:

01
[gitosis]
02
 
03
[group gitosis-admin]
04
writable = gitosis-admin
05
members = USER1@PC1
06
 
07
[repo gitosis-admin]
08
gitweb = no
09
daemon = no
10
 
11
[group NOME_REPO_team]
12
writable = NOME_REPO
13
members = USER1@PC1 USER2@PC2
14
 
15
 
16
[repo NOME_REPO]
17
owner = Eugenio Minardi
18
description = NOME_REPO Project + descrizione
19
gitweb = yes

Ora bisogna effettuare il push del repo per rendere effettive le configurazioni.

1
git push

Installare NGINX

Per installare NGINX lanciare

1
apt-get install nginx

per attivare il supporto a php è necessario installare tutti i pacchetti di php, inclusi i cgi:

1
apt-get install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Successivamente bisogna editare il file php.ini

1
vi /etc/php5/cgi/php.ini

e modificare/aggiungere la riga cgi.fix_pathinfo = 1

1
cgi.fix_pathinfo = 1

Dato che non c’è alcun supporto standalone per FastCGI/Php su ubuntu, è necessario installare LightHTTPd

1
apt-get install lighthttpd

del quale useremo solo il servizio che ci serve, per cui se non ci interessa avere il server completo togliamolo dall’esecuzione automatica:

1
update-rc.d -f lighthttpd remove

Se nginx era già in esecuzione, al punto precedente, si otteneva un errore, in caso tutto fosse ok è allora necessario terminare l’ascolto del server:

1
/etc/init.d/lighthttpd stop

Per potere lanciare il servizio che ci serve ad ogni avvio è necessario modificare il seguente:

1
vi /etc/rc.local

Aggiungendo prima dell’exit il seguente comando

1
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

Configurare NGINX
Un file di esempio da aggiungere in sites è il seguente, ovvero il file per poter eseguire git-php

01
02
server {
03
    listen               80;
04
    server_name     SERVER_NAME;
05
    root                /var/www/git;
06
    index               index.php;
07
 
08
        location ~ \.php$ {
09
 
10
                auth_basic            "Restricted";
11
                auth_basic_user_file  /etc/nginx/htpasswd;
12
 
13
                fastcgi_pass   127.0.0.1:9000;
14
                fastcgi_index  index.php;
15
                fastcgi_param  SCRIPT_FILENAME  /var/www/git$fastcgi_script_name;
16
                include        fastcgi_params;
17
        }
18
 
19
        # deny access to .htaccess files, if Apache's document root
20
        # concurs with nginx's one
21
        #
22
        location ~ /\.ht {
23
                deny  all;
24
        }
25
 
26
}
27

Dato che ho selezionato auth_basic, è necessario creare un file di password all’interno di /etc/nginx o dove è stato impostato nel file di configurazione.

Se il file non esiste è necessarlo inizializzarlo con il primo utente:

1
htpasswd -c htpasswd NOME_UTENTE

La password viene richiesta da bash. Per gli utenti successivi invece:

1
htpasswd -b htpasswd NOME_UTENTE PASSWORD_UTENTE

GIT-PHP
L’ultima cosa che rimane da fare è copiare git-php nella cartella /var/www/git e modificare il file di configurazione di modo che punti alla cartella dei repository /home/git/repositories

Il modo migliore per copiare i file è l’uso di git

1
git clone https://github.com/tpruvot/GitPHP git

Il precedente ovviamente lanciato da /var/www

Il sistema è ora pronto ad ospitare tutti i vostri repository.