Mi vida plasmada en un blog

Instalación y configuración de TRAC

Después del post del otro día sobre SVN, que mejor que unir este maravilloso gestor de tareas para proyectos en SVN. Digo lo mismo que el otro día, si alguien lo quiere en PDF, solo tiene que pedírmelo :)

Comenzaremos instalando el trac vía apt-get:

# apt-get install trac

Creamos el entorno para que trabaje trac. Esto se compondrá de un directorio donde irá guardando todos los datos:

# trac-admin /etc/trac/pruebas initenv

Nos hará varias preguntas para configurar trac, en las que responderemos:

Creating a new Trac environment at /etc/trac/pruebas2

Trac will first ask a few questions about your environment
in order to initalize and prepare the project database.

Please enter the name of your project.
This name will be used in page titles and descriptions.

Project Name [My Project]>carreteras

Aquí le diremos el nombre que tendrá nuestro proyecto en trac, en este caso carreteras.

Please specify the connection string for the database to use.
By default, a local SQLite database is created in the environment
directory. It is also possible to use an already existing
PostgreSQL database (check the Trac documentation for the exact
connection string syntax).

Database connection string [sqlite:db/trac.db]>[Pulsamos enter]

Ahora nos preguntará donde queremos y que motor de base de datos queremos usar, dejamos la opción por defecto, es decir, pulsamos enter sin más.

Please specify the type of version control system,
By default, it will be svn.

If you don’t want to use Trac with version control integration,
choose the default here and don’t specify a repository directory.
in the next question.

Repository type [svn]> [Pulsamos enter]

Podremos usar trac con un proyecto de svn ya hecho, si es este el caso y usamos svn pulsaremos enter para que marque la opción por defecto.

Please specify the absolute path to the version control
repository, or leave it blank to use Trac without a repository.
You can also set the repository location later.

Path to repository [/path/to/repos]> /home/sistemas/proyectos

Lo que configuraremos ahora será, solo en el caso de que vayamos a usar trac con un proyecto de svn y será el directorio del repositorio de svn a trabajar, en este caso /home/sistemas/proyectos

Por último nos preguntará el directorio de plantillas, donde ha sido instalado trac, en este caso está en el directorio por defecto, así que daremos al enter para acabar de configurar el entorno:

Please enter location of Trac page templates.
Default is the location of the site-wide templates installed with Trac.

Templates directory [/usr/share/trac/templates]> [Pulsamos enter]

Arrancar el servidor de trac

En modo standalone

Ahora ya tendremos configurado el entorno, ahora vamos a lanzar el servicio de forma “standalone” para ver a tiempo real los accesos, luego lo mandaremos en modo demonio y lo meteremos en el inicio del sistema, para que arranque cuando arrancamos la máquina.

# tracd –port 8000 /etc/trac/pruebas

Si no ha habido ningún problema, arrancará nuestro servidor de trac, con el entorno que hemos configurado en el paso anterior, por lo tanto para ver trac en la WEB, abriremos un navegador e iremos al puerto de trac:

http://localhost:8000/carreteras

Veremos que trac está funcionando en este puerto y para el proyecto y entorno que hemos creado.

En modo demonio

Ahora vamos a ejecutar trac como demonio, para que no tengamos que tenerlo siempre ejecutado en una consola, por lo tanto meteremos el flag d y lo ejecutaremos:

# tracd –d –port 8000 /etc/trac/pruebas

Por ultimo vamos a meterlo como demonio en el arranque del sistema. Creamos un script que arranque el trac en modo demonio, como hemos hecho a lo último y lo metemos en un fichero dentro de /etc/init.d:

# vim /etc/init.d/tracd

Y metemos dentro la línea de ejecución:

tracd –d –port 8000 /etc/trac/pruebas

Le damos permisos de ejecución:

# chmod a+x /etc/init.d/tracd

Y por ultimo lo metemos en los rc:

# update-rc.d -f tracd defaults

Como hemos puesto por defecto, lo meterá en todos los arranques del sistema (0-6). Por ultimo probaremos si se arranca bien, ejecutando:

# /etc/init.d/tracd start

Si quisiéramos que al hacer stop/restart también funcionara, tendríamos que modificar el script que hay en init.d para que lo hiciera, como no es nuestro caso, lo dejaremos así de momento.

Usando el mod_python

Según la recomendación de trac, una forma de usarlo, de la manera más rápida y/o cómoda es con mod_python, un módulo de apache2 para que funcione python en él, por lo tanto vamos a instalarlo y configurarlo, primero instalamos los paquetes necesarios:

# apt-get install libapache2-mod-python libapache2-mod-python-doc

Activamos el módulo en apache2, por si no lo hace él solo a la hora de instalar:

# a2enmod mod_python

Creamos dentro de apache2 la localización para entrar a él vía WEB, por lo tanto editamos el fichero por defecto del virtualhost (o el que vayamos a usar) e introducimos las siguientes líneas:

# vim /etc/apache2/sites-enable/000-default

<Location /trac>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /etc/trac/carreteras
</Location>

Hay veces que se arma líos con las rutas y los estilos, por si acaso meteremos este alias en apache2 para que sepa bien dónde está:

# vim /etc/apache2/sites-enable/000-default

Alias /trac/css “/usr/share/trac/htdocs/css”
<Location /trac/css>
SetHandler None
</Location>

Para finalizar, tenemos que reiniciar apache2 para que coja estás nuevas localizaciones y rutas, por lo tanto:

# /etc/init.d/apache2 restart

Y si ahora vamos a la nueva dirección para entrar en trac, que en este caso no hará falta entrar a través del puerto 8000, ya que no lo hemos configurado así, iremos:

http://localhost/trac

Configurar los permisos en trac por usuario

Dentro de trac podremos crear usuarios para que puedan crear tickets, corregirlos, cerrarlos, etc… para ello usaremos contraseñas de apache2 y en este caso aprovecharemos las que usamos en svn/dav y así tenerlas todas en el mismo sitio. El directorio de login dentro de trac está en:

/trac/login

Por lo tanto vamos a crear una nueva localización y darle permisos con contraseñas de apache2:

# vim /etc/apache2/sites-enable/000-default

<Location /trac/login>
AuthType Basic
AuthName “Trac Login”
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Location>

Ahora ya podremos hacer autentificarnos, dentro de trac en el apartado login, usando la autentificación de apache2 que también usamos para el svn/dav.

Si quisiéramos usar otro fichero de contraseñas, únicamente tendríamos que crearlo con htpasswd y meterlo en el Location.

Configuración de un plugin: webadmin

En este apartado vamos a matar dos pájaros de un tiro, por una parte vamos a mostrar como configurar e instalar un plugin de trac y para ello, usaremos el webadmin, que es una forma fácil de configurar nuestros proyectos en trac sin usar la consola con el comando trac-admin.

Lo primero que vamos a hacer es instalar un paquete necesario para python:

# apt-get install python-setuptools

Una vez instalado, nos bajaremos el código del webadmin y haremos un fichero .egg, que será el plugin comprimido, bajamos el código:

# cd /tmp
# svn export http://svn.edgewall.com/repos/trac/sandbox/webadmin/

El código lo tendremos dentro de la carpeta webadmin, ahora vamos a usar python para crear el .egg:

# cd webmin
# python setup.py bdist_egg

Ahora que ya lo tenemos, lo metemos dentro de la carpeta plugins de nuestro entorno. El .egg estará en la carpeta dist:

# cp dist/* /etc/trac/carreteras/plugins/

Para casi finalizar, meteremos dentro del entorno este plugin, editando el fichero trac.ini y añadiendo unas líneas:

# vim /etc/trac/carreteras/conf/trac.ini

[components]
webadmin.* = enabled

Para finalizar daremos permisos a uno o más usuarios para poder usar este plugin, para ello usaremos trac-admin:

# trac-admin /etc/trac/carreteras/ permission add sistemas TRAC_ADMIN

En este caso damos permisos en el apartado TRAC_ADMIN al usuario sistemas, que está dentro de los usuarios que pueden acceder a login y hemos configurado previamente.

Reiniciaremos apache2 y estará todo configurado:

# /etc/init.d/apache2 restart

Tags: , , , ,

Deja una respuesta