No todos tenemos las mismas oportunidades, pero todos tenemos una.

Configuraciones subversion,apache,trac,hudson

En la presente entrada hay un resúmen sobre los principales comandos utilizados en las herramientas subversion, apache, trac y hudson, a manera de guía rápida, así como alunos conceptos.

Subversion

Es un sistema de control de versiones libre, nos sirve para manejar ficheros y directorios a través del tiempo, para ésto hace uso de un árbol de ficheros creado como repositorio central que va almacenando todos los cambios hechos a sus ficheros y directorios, permitiendo así recuperar versiones antiguas de sus datos, o examinar el historial de cambios de los mismos.


Subversion proporciona las siguientes características:

- Versionamiento de directorios- Historial de Versiones

- Envíos atómicos

- Versionado de metadatos

- Elección de las capas de red

- Manipulación consistente de datos

- Ramificación y etiquetado eficientes

- Hackbility

Hudson

Hudson es una herramienta de integración continua escrita en Java, que se ejecuta en un contenedor de servlets, tales como Apache Tomcat o el servidor de aplicaciones GlassFish. Apoya a herramientas SCM tales como CVS, Subversion, Git y ClearCase y puede ejecutar Apache Apache Ant y Maven proyectos, así como los scripts de shell arbitrarios y lote de comandos de Windows. La construcción se puede iniciar por diversos medios, se puede incluir la programación a través de un mecanismo similar a cron y pidiendo a construir una dirección URL.
Hudson es un proyecto de código abierto, y su principal promotor de Hudson es Kohsuke Kawaguchi, quien trabaja para Sun Microsystems.

Tomcat

Es un servidor de servlets, liviano y principalmente soportar hudson.

Parte práctica

- Instalación de subversion
- Instalación trac
- Instalación hudson
- Configurar apache con soporte de webDAV y enlazarlo con subversion
- Configurar apache con soporte para python y que trac funcione a traves de apache y no stand-alone server
- Creación de un repositorio con la estructura básica (trunk,branches,tags)
- Creación de un proyecto java (no importa que sea un hola mundo) y que lo ubiquen en el trunk del respositorio
- Configurar hudson para que efectue al menos 3 construcciones exitosas a partir del repositorio web
- Configurar trac para que soporte el proyecto creado en subversion
- Modificar o utilizar un css elaborado (cualquiera) para darle buen aspecto al front-end web de subversion
- Enlazar trac con la exploración de hudson mediange el plugin de hudson y trac, tambien incluir un screenshot donde sea evidente que se han enlazado

**A continuación el desarrollo de la practica**

Instalando paquetes...


Con permisos root instalamos los paquetes necesarios para la configucacion de SubVersion con los siguientes comandos:

# apt-get update
# apt-get install subversion
# apt-get install libapache2-svn


El paquete libapache2-svn instalará el módulo de Apache WebDAV subversión.

Crear Repositorios

Para crear repositorios se usan los comandos:

# mkdir /var/svn-repos/
# svnadmin create --fs-type fsfs /var/svn-repos/practica1

En donde practica1 es el nombre que le puse a mi practica :D, luego se le deben asignar permisos (exactamente igual para evitar complicaciones :S), y se crea un grupo con los siguientes comandos (se pueden crear todos los grupos que queramos):

# groupadd subversion
# addgroup ale subversion
# chown -R www-data:subversion /var/svn-repos/*
# chmod -R 770 /var/svn-repos/*


Ahora la estructura del repositorio consiste en los subdirectorios trunk, tags y branches que es donde se guarda tod el código de nuestro proyecto:

$ sudo svn mkdir --message="mensaje de que se estan inicializando..." \
file:///var/svn-repos/trunk \
file:///var/svn-repos/tags \
file:///var/svn-repos/branches

Subversion WebDAV

Se utilizan los comandos:

# a2enmod dav
# a2enmod dav_svn


Tambien se pueden asignar usuarios a los grupos con el siguiente comando:

# htpasswd -c /etc/apache2/dav_svn.passwd cindy

Ahora hay q modificar el archivo /etc/apache2/mods-available/dav_svn.conf con las lineas de código:

<
Location /practica1>
DAV svn
SVNPath /var/svn-repos/practica1
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
< /Location >

por ultimo se debe reiniciar apache:

# /etc/init.d/apache2 restart

El repositorio se encuentra en la url:

http://localhost/practica1/


Autenticación


Este pantallazo lo saque despues de varios cambios

Unir con un proyecto de netbeans

Como el objetivo de la practica es solo unir un proyecto para manejarlo en el repositorio de subversion, entonces solo hay que crear un proyecto java simple con algunas lineas de codigo iniciales para probar los cambios (hola mundo).



La parte importante es importar el proyecto a nuestro repositorio, esto se hace con el comando:

# svn import proyecto http://localhos/rutadelrepositorio -m "inicio"

También existen otras funciones como checkin y checkout (las definiciones estan en el otro post):

# svn commit -m "..cambiando algo" http://localhost/rutarepositorio/rutaproy # svn checkout http://localhost/rutarepositorio/projecto/trunk miproyecto

Después de enlazar el proyecto de netbeans con subversion, todos los archivos de éste, tienen activadas las opciones para subversion como commit, diff, update, etc, ya de forma grafica.



Algo importante para realizar los commits, es configurar el versionamiento en netbeans (esta en la barra de herramientas). Despues de realizar los cambios sobre el proyecto, se pueden ver en el repositorio.



Ahora Hudson

Para la configuracion de hudson se debe tener instalado un openjdk o sunjdk, una version de apache y el war de hudson, que se puede descargar de la pagina https://hudson.dev.java.net. Para éste ejemplo se va trabajar sobre la carpeta /srv. Debemos asignar permisos e inicializar el tomcat.

#chmod 777 srv #/srv/apache-tomcat-xxx/bin/startup.sh

Si todo se configuro bien, se deberia visualizar la pagina inicial de apache en la url: http://localhost:8080/
Ahora debemos detener el apache con el comando shutdown, y copiar el archivo de hudson sobre:

#/srv/apache-tomcat-xxx/webapps

y reiniciar el apache, hudson debe poder visualizarse sobre la url: http://localhost:8080/hudson.



Para enlazar los proyectos a hudson solo se debe utilizar la interfaz grafica que se muestra en el browser, y todos los pasos son simples siguiendo la creación de un "new job".

Ahora trac

Para la instalacion se debe ejecutar el comando:

#sudo apt-get install trac

Crearemos un directorio para almacenar un proyecto de trac, en este caso trabajamos otra vez sobre la carpeta /srv:

#mkdir /srv/trac

Y se crea un nuevo entorno con el comando:

#trac-admin /svr/trac/practica1 initenv

Se recomienda ingresar los datos sugeridos por el instalador. Al final damos los permisos a la carpeta

#sudo chown -R www-data:www-data /srv/trac

Como se debe habilitar modo python, se instala el paquete:

libapache2-mod-python

Por ultimo se configura el archivo de configuración que se encuentra en el directorio /etc/apache2 y le agregamos la siguiente información:


SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /srv/trac/practica1
PythonOption TracUriRoot /trac/
practica1

practica1>
DAV svn
SVNPath /var/svn-repos/
practica1
AuthType Basic
AuthName “Repositorio Virtual”
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user

Y por ultimo se reinicia nuevamente el apache

#/etc/init.d/apache2 restart

Finalmente podemos visualizar un nuevo repositorio de trac en la url: http://localhost/trac/practica1


Finalmente el screenshot de mi UUID:

1 comentarios:

Vivian dijo...

Que onda Cindy, sabes tenes mi mismo fondo de escritorio el de la ranita... xD "Principe Encantado" jajaja, que BUEN POST :-D, neeeeeeeee solo por eso va .. xD, vos te deje un premio podrías escribir 7 cosas tuyas...bueno 7 de tantas, jejeje ...
http://espaciopq.blogspot.com/2009/07/7-cosas-raras.html
gracias, Saluditos :-D