dissabte, de desembre 11, 2010

Passos per instal·lar un servidor de SVN a EC2

Sempre és bo tenir un servidor de Subversion per a ús propi i si tens una connexió ADSL i un ordinador seriós per fer de servidor, o sigui un Linux o un Mac, pots muntar-lo al teu ordinador. Però llavors has de tenir-lo sempre encès, obrir certs ports, etc.
Una alternativa és usar una màquina virtual d'Amazon EC2, és com tenir el teu propi servidor i això fa que l'accés sigui molt fàcil. A més, si vols, pot estar sempre encès. Amazon et deixa provar durant un any el servei, després el servei costa pocs dòlars al mes, quants en concret us ho diré a principis del 2012, que és quan m'hauria de venir la primera factura :)
Què cal fer per tenir un servidor de Subversion corrent a la teva instància d'EC2?
Després de donar-nos d'alta a Amazon EC2 i dir-li a Amazon la targeta de crèdit creem una instància de Linux 64 bits de tipus Micro (la més petita i gratuïta per un any) i ens baixem la clau, amb extensió pem, que necessitem per connectar-nos-hi mitjançant ssh.
Buscant per Internet esbrinem que aquesta instància de fet és un Linux de la distribució Centos, que és molt semblant a la Red Hat Enterprise Linux.
Si la instància es diu per exemple ec2-ab-cd-efg-hij.eu-west-1.compute.amazon,
on de a fins a j seran dígits,
entrem a la instància fent, en un terminal de Mac (per a Linux deu ser molt semblant):
ssh -i fitxer_de_clau ec2-ab-cd-efg-hij.eu-west-1.compute.amazon
Un cop dins fem:
sudo su
yum install svn

i ja podem crear repositoris de Subversion:
mkdir svn
cd svn
svnadmin create repos

Per fer un checkout a la mateixa instància, fem:
cd
cd SVN
svn co file:///home/ec2-user/svn/repos
I per exemple, fem:
svn add fitxer1.txt
svn ci -m "First version of fitxer1.txt"

Però el més interessant és clar és poder baixar el codi des d'una màquina de debò i per a això cal que svn trobi el fitxer d'identitat del ssh. Vaig trobar com fer-ho aquí
S'afegeix un fitxer anomenat config al directori .ssh del teu home.
Allà hi posem una línia que comenci per IdentityFile, seguida d'un espai i el path complet de la clau amb extensió pem.
I llavors ja podem fer:
svn co svn+ssh://ec2-user@ec2-ab-cd-efg-hij.eu-west-1.compute.amazon/home/ec2-user/svn/repos
i això ens baixa el codi al nostre directori local!

A més, després d'haver afegit aquest fitxer de configuració, ja podem fer:
ssh ec2-user@ec2-ab-cd-efg-hij.eu-west-1.compute.amazon
per entrar a la instància, ja no cal usar l'opció -i per dir-li on és la clau amb l'extensió pem.