sábado, 13 de junio de 2009

Implementando un Entorno de Integracion

Bueno para iniciar con esta implementacion vamos ha instalar lo que es un sistema de control de versiones en este caso se utilizara Subversion el cual aparte de su estabilidad es software libre.

Lo pueden hacer desde el Gesto de Paquetes Synaptic o en una terminal como se muestra a continuacion:


sudo apt-get install subversion libapache2-svn subversion-tools



En la instalación, se ha incluido el modulo libapache2-svn que le proporciona a Subversion el servidor backend WebDAV para el soporte de los repositorios a través de HTTP y HTTPS, también se incluyo en la instalación las herramientas de subversion que nos pudieran ser útiles en un futuro.
De una vez creamos un repositorio, con la salvedad que siempre que vamos a crear un repositorio se hace con el usuario de subversion svnadmin ya que el comando crear no existe en el usuario svn.


svnadmin create /var/svn-repositorios/pruebas


Ahora vamos a crear un grupo en el sistema para organizar los usuarios de subversion, luego con el usuario que estamos logueados en el sistema podemos agregarlo al nuevo grupo, en mi caso mi usuario es daniel y quedaria todo de la siguiente forma.


sudo groupadd sub

sudo addgroup daniel sub


Cambiamos de duenio al repositorio creado asi como otorgamos los permisos necesarios, para poder trabajar sin ningun problema.


sudo chown -R www-data /var/svn-repositorios/Final daniel

sudo chmod -R 770 /var/svn-repositorios/Final


Del directorio /etc/apache2/mods-available/ modificaremos el archivo dav_svn.conf y ya sea que descomentes o agregues nuevas tags, pero que quede de la siguiente manera.


DAV svn
SVNPath /var/svn-repositorios/Final
AuthType Basic
AuthName "Repositorio de Prueba Final (practica1)"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user



Ahora para aplicar los cambios deberemos reiniciar Apache


sudo /etc/init.d/apache2 restart


Ahora podemos acceder al repositorio desde nuestro servidor local (localhost)


http://localhost/Final/


Ahora para organizar nuestro entorno de integracion, agregaremos las carpetas, trunk, branches y tags


svn mkdir file:///var/svn-repositorios/Final/trunk
svn mkdir file:///var/vsn-repositorios/Final/branches
svn mkdir file:///var/svn-repositorios/Final/tags



Para probar lo que hemos realizado entonces vamos a importar un proyecto, este proeycto es algo simple solo para probar nuestro repositorio, en este casoes un proyecto realizando en NetBeans 6.5, imortaremos todo el proyecto a nuestros repositorios de la siguiente forma.



svn import /home/daniel/NetBeansProjects/Hola file:///var/svn-repositorios/Final/trunk



Podemos observar que el primer parametro que recibe import es el directorio del proyecto que queremos importar al repositorio siempre recordandonos de poner el tipo de protocolo para el directorio del repositorio, el cual es file:// y como es proyecto original, inicialmente lo almacenamos en la carpeta TRUNK

Ahora ya habiendolo importado ahora probaremos algunos comandos por ejemplo, vamos ahora exportar el mismo proyecto que importamos pero en otro lugar claro esta y lo modificaremos para luego hacer un commit y realizar una nueva version, entonces veamos como se exporta un proyecto desde un repositorio



svn chekout http://localhost/Final/trunk /home/daniel/Escritorio/ProyectoSubversion


De esta manera ya tenemos una copia del proyecto que se encuentra en el repositorio en otra direccion local de nuestra computadora, ahora ya podremos modificar y luego hacer commit y de esta manera se crea una nueva version dentro de nuestro repositorio y lo veremos de mejor forma al momento de usar las herramientas Trac y Hudson, bueno luego de modificar las fuentes se procede a colocarse dentro del directorio de la copia del proyecto y se da un commit.


svn commit -m 'modificado'


Note que el parametro -m 'modificado' indica el mensaje sobre la modificacion que se ha realizado al proyecto, de esta manera ya hemos probado nuestro repositorio que funciona correctamente ahora, para pder extender nuestro entorno de integracion y tener una mejor manejo sobre el exiten herramientas graficas para su mejor control, en este caso veremos como instalar y configurar Hudson el cual es el que construye y prueba el proyecto cada cierto tiempo, este tiempo se puede modificar y puede ser definido por el usuario,

Primero que nada instalamos TOMCAT 6 en este caso y el modo jk


sudo apt-get install tomcat6 libapache2-mod-jk


Ahora instalamos Hudson y para eso descargamos el .war y lo colocamos en la carpeta webapps de tomcat, que previamente hemos instalado, entonces para descargarlo directamente en la carpeta nos posicionamos en la carpeta WEBAPPS y ejecutamos el siguiente comando para que descargue el .war en el directorio actual.


sudo wget http://hudson.gotdns.com/latest/hudson.war


Cabe mencionar que para utilizar estas herramientas necesitaremos tener instalado el jdk y tambien hay que poner la direccion de la variable de entorno segun donde se guarde el jdk, entonces luego de haver instalado el JDK deberemos colocar la direccion de lavariable de entorno JAVA_HOME, entonces en la consola ejecutamos, en mi caso esa es mi direccion del jdk



export JAVA_HOME=/usr/lib/jvm/java-6-sun



Listo ahora ya podremos acceder ha Hudson desde nuestro explorador tecleando en la barra de direcciones http://localhost:8080/hudson deberia de mostrarnos una de inicio, desde aca podremos crear el enlace a nuestro proyecto.





Ahora veremos como se crea un nuevo proyecto y se enlaza al repositorio.



tambien



A continuacion veremos que opciones debemos elegir, almenos las basicas aca solo es una parte introductoria,



Al final le damos guardar y listo ya podremos acceder a nuestros repositorios de nuestro proyecto desde Hudson y asi poder compilarlo, adjunto un imagen de mi pagina de mi proyecto con varias compilaciones en donde fayo en varias veces y el de color azul es cuando se ha compilado correctamente



Si observamos la imagen anterior en la parte inferior del menu se encuentra el logo de Tracde que es una huellita, esto quiere decir que se encuentran integradoas, unicamente hay que instalar el plugin de Trac, accediendo desde el menu principal de Hudson al Manage y ahi en la opcion de Manage Plugins, buscar la de trac e instalarla y listo, ya podremos trabajar con Trac desde Hudson.

Ahora instalaremos una herramienta para el seguimiento de los proyectos como lo es Trac, donde el objetivo de esa herramienta es ayudar a los desarrolladores como al propio jefe o jefes del proyecto ha darle un matenimiento mientras la construccion de todo el sistema alojado en un repositorio, asi como ayudar a la planificacion, cronograma, asignar activdades a los desarrolladores en fin para administrar de mejor manera el proyecto, al inicio Trac puede parecder muy simple pero gracias a que posee una infinidad de plugins, puede ser mayormente adoptado a nuestras necesidades.

Instalacion de Trac y creamos una nueva carpeta con el nombre de trac que nos serivira para almacenar nuestros proyectos


apt-get install trac

mkdir /var/trac


Luego creamos un proyecto, almenos la carpeta que va contener el proyecto, lo cual al ejecutar el comando initenv este nos va a pedir toda la informacion necesaria para enlazar nuestros repositorios y llevar el control que se requiere, por ejemplo inicialemente pedira la base de datos, unicamente teclean enter para que utilice la default que es una que trae el sistema, luego el software que esta usando para las versiones en nuestro caso es Subversion, pero tambien este es el default de Trac asi que con un Enter sera suficiente por ultimo pide la direccion del repositorio la cual deberemos agregarla en mi caso mi direccion que coloco es /var/svn-repositorios/Final.



trac-admin /var/trac/Final initenv



Ahora volvemos a configurar apache para que las peticiones que van al directorio Trac, que hemos creado para asi poder trabajar desde el servidor, nos dirijimos ahora al archivo /etc/apache2/sites-available/default y agregamos lo que a continuacion se describe antes de cerrar el tag Virtual Host


SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_fronted
PythonOption TraceEnvParentDir /var/trac
PythonOption TracUrlRoot /trac


Volvemos a recargar apache y ahora solo nos queda dar los permisos necesarios, por ejemplo


chown -R www-data.www.data /var/trac/Final


Ahora ya podremos acceder a Trac desde apache, unicamente colocando en la barra de direcciones localhost:/trac y ahi aparecera nuestro proyecto contenido en el repositorio.




Ahora veremos como cambiar de aspecto a la plantilla que trae por default para mostrar los repositorios desde apache2, yo me he bajado algunos estilos desde la siguiente pagina web: http://www.sarkis-webdesign.com/plantillas-web-gratis.html y luego le he cambiado de nombre al CSS bajado por el nombre de svnindex.css al igual que svnindex.xsl a la carpeta /var/www si traen imagenes el CSS deberemos copiar la carpeta tambien y de esta manera es aplicada la plantilla deseada.



Para fines de calificacion de mi practica coloco la siguiente imagen colocando los UID de mis discos duros




No hay comentarios:

Publicar un comentario