Trac con git y postgreSQL (trac + git + postgreSQL)

Manual en construcción ..¡¡¡¡¡
Instalación de Herramienta de manejo de proyecto trac con control de versiones git y base de datos postgreSQL (trac + git + postgreSQL)

El siguiente ejemplo corresponde a la instalación en un equipo i386 con debian 6.0 (squeeze), la versión de trac utilizada es la 0.12.2 (actual estable), la cual será instalada desde los fuentes.
Como proyecto ejemplo se utilizó el Sistema Administrativo Sigesp

Plugins a instalar: trac-git, authopenid, accountmanager, graphviz, icalviewplugin, spamfilter, wikiprint, wikitablemacro, xmlrpc, entre otros

Este ejemplo está basado en la guía de instalación y configuración de Trac desarrollada por Jesús Lara

Instalación:

Servidor WEB

~# aptitude install libapache2-mod-python apache2 libapache2-mod-wsgi


Control de versiones git

~# aptitude install git git-svn git-core git-daemon-run

Base de datos

~# aptitude install postgresql

Dependencias

~# aptitude install python-setuptools python-psycopg2

Aplicación Trac:

~# easy_install -U setuptools [Actualización de la herramienta setuptools]
~# easy_install Babel==0.9.5 Genshi==0.6 [Instalación de las dependencias]
~# easy_install Trac [Instalación del aplicactivo trac]

Comprobación de la versión instalada:

~# trac-admin --version
trac-admin 0.12.2

Instalación de plugins trac-git

~# easy_install http://github.com/hvr/trac-git-plugin/tarball/master

Configuración de la Base de Datos:

Agregar las siguientes líneas al archivo pg_hba.conf:

~# nano /etc/postgresql/8.4/main/pg_hba.conf

local tracdb tracuser password
host tracdb tracuser 127.0.0.1/32 md5
host tracdb tracuser 192.168.57.0/24 md5  # segmento de dirección ip del servidor
#para poder iniciar sesion en red:
host all all 192.168.57.0/24 md5	# configuración para accesar desde cualquier equipo
~# nano /etc/postgresql/8.4/main/postgresql.conf

Descomentar la siguiente línea:
listen_addresses = '*'

Crear Base de Datos Trac:

Iniciar una consola de postgreSQL y ejecutar:

~# su postgres

>psql

postgres=# CREATE DATABASE tracdb WITH ENCODING='UTF8' TEMPLATE=template0 LC_COLLATE='C' LC_CTYPE='C' CONNECTION LIMIT=-1;
CREATE DATABASE

postgres=# create user tracuser password '12345678';
CREATE ROLE

postgres=# grant all on database tracdb to tracuser;
GRANT

postgres=# \q

Reiniciamos el postgreSQL:

~# /etc/init.d/postgresql restart

Crear carpeta proyecto sigesp

# mkdir -p /srv/organismo/repositorio
# mkdir -p /srv/organismo/sigesp

Descargar proyecto sigesp

# cd /srv/organismo/repositorio
# wget -c http://forja.softwarelibre.gob.ve/frs/download.php/308/sigesp_v1.zip

Descomprimir

# unzip sigesp_v1.zip

Renombrar carpeta

# mv sigesp_v1 sigesp

Control de versiones git:

Estando en la ruta /srv/organismo/repositorio

$ git init [Indicarle a git que inicie el control de los cambios]

$ git config user.email “adminsigesp@organismo.com.ve”
$ git config user.name “Administrador”

$ git add . [Agregar todos los archivos presentes]
$ git commit -m "Versión Inicial proyecto sigesp" [Crear la revisión inicial]

$ git log [Ver el historial de cambios]
$ git log --stat --summary [Ver los cambios de forma detallada]

Crear proyecto con trac:

# trac-admin /srv/organismo/sigesp/ initenv
Creating a new Trac environment at /srv/organismo/sigesp
...
Project Name [My Project]> Proyecto Sigesp
...
Database connection string [sqlite:db/trac.db]> postgres://tracuser:12345678@localhost:5432/tracdb
...
Repository type [svn]> git
...
Path to repository [/path/to/repos]> /srv/organismo/repositorio/.git/
...
---------------------------------------------------------
Project environment for 'sigesp' created.

You may now configure the environment by editing the file:

/srv/organismo/sigesp/conf/trac.ini
...

tracd --port 8000 /srv/organismo/sigesp/
....
Congratulations!

Activar control de versiones git en trac:

~# nano /srv/organismo/sigesp/conf/trac.ini

[components]
tracext.git.* = enabled 

[git]
cached_repository = true
git_bin = /usr/bin/git
persistent_cache = true
shortrev_len = 6
git_fs_encoding = latin1

[trac]
repository_dir = /srv/organismo/repositorio/.git/

Cambiar los permisos y los dueños del repositorio:

~$ sudo chmod -R 775 /srv/organismo/repositorio
~$ sudo chown -R 775 /srv/organismo/sigesp
~$ sudo chown -R www-data:www-data /srv/organismo/repositorio
~$ sudo chown -R www-data:www-data /srv/organismo/sigesp

Instalar plugins de trac accountmanager:
easy_install https://trac-hacks.org/svn/accountmanagerplugin/0.11

Activar Plugins:

~# nano /srv/organismo/sigesp/conf/trac.ini

[account-manager]
account_changes_notify_addresses =
force_passwd_change = True
generated_password_length = 8
hash_method = HtDigestHashMethod
htdigest_realm =
notify_actions = []
password_file = /srv/organismo/www/.htpasswd
password_format = htpasswd
password_store = HtPasswdStore
persistent_sessions = False
reset_password = True
user_lock_max_time = 0
[components]
acct_mgr.admin.accountmanageradminpage = enabled
acct_mgr.api.accountmanager = enabled
acct_mgr.db.sessionstore = enabled
acct_mgr.htfile.abstractpasswordfilestore = enabled
acct_mgr.htfile.htdigeststore = enabled
acct_mgr.htfile.htpasswdstore = enabled
acct_mgr.http.httpauthstore = enabled
acct_mgr.notification.accountchangelistener = enabled
acct_mgr.notification.accountchangenotificationadminpanel = enabled
acct_mgr.pwhash.htdigesthashmethod = enabled
acct_mgr.pwhash.htpasswdhashmethod = enabled
acct_mgr.svnserve.svnservepasswordstore = enabled
acct_mgr.web_ui.accountmodule = enabled
acct_mgr.web_ui.emailverificationmodule = enabled
acct_mgr.web_ui.loginmodule = enabled
acct_mgr.web_ui.registrationmodule = enabled

Crear Usuario Administrador Trac:
~# trac-admin /srv/organismo/sigesp/ permission add administrador TRAC_ADMIN

Listar permisos y usuarios:
~# trac-admin /srv/organismo/sigesp/ permission list

Probamos la instalación de trac y su integración con git:
~# tracd --port 8000 /srv/organismo/sigesp

Apuntamos el navegador a:
http://host:8000/sigesp

Configuración Básica site en Apache:

En la ruta: /etc/apache2/sites-enabled crear el archivo trac

~# nano /etc/apache2/sites-available/trac

y colocar la siguiente información:

 <VirtualHost *:80>
       ServerAdmin correo@dominio.com
       ServerName  trac
       ServerAlias trac
       DocumentRoot /srv/organismo/www
       ServerSignature On
       <Directory />
            Options FollowSymLinks
            AllowOverride None
       </Directory>
      <Location /trac>
	   SetHandler mod_python
	   PythonInterpreter main_interpreter
	   PythonHandler trac.web.modpython_frontend
	   PythonOption TracEnv /srv/organismo/sigesp 
	   PythonOption TracUriRoot /trac
      </Location>

ErrorLog /srv/organismo/www/log/apache-error.log
CustomLog /srv/organismo/www/log/access.log combined

</VirtualHost>

Crear directorio para logs:

~# mkdir /srv/organismo/www/log
~# chown -R www-data.www-data /srv/organismo/www/

Activar Página:

~# a2ensite trac

Reiniciar servicio:

~# /etc/init.d/apache2 restart

Autenticación Basica del site:

Agregar usuario de sistema para administrar trac:

~# useradd administrador

Crear archivo inicial para autenticar los usuarios con Trac:

~# htpasswd -c /srv/organismo/www/.htpasswd administrador

nota: inicialmente autenticamos con el usuario administrador (admin)

Agregar la entrada al vhost del trac:

        <Location /trac>
                AuthType Basic
                AuthName "Trac"
                AuthUserFile /srv/organismo/www/.htpasswd
                Require valid-user
        </Location>

Agregar la info de autenticación via HTPASSWD al archivo de configuración de trac:

~# nano /srv/organismo/sigesp/conf/trac.ini

	[account-manager]
	account_changes_notify_addresses =
	password_file = /srv/organismo/www/.htpasswd
	password_format = htpasswd
	password_store = HtPasswdStore

Reiniciar apache:

~# /etc/init.d/apache2 restart

Dar privilegios de TRAC_ADMIN al usuario administrador:

~# trac-admin /srv/organismo/sigesp

	Welcome to trac-admin 0.12.2
	Interactive Trac administration console.
	Copyright (C) 2003-2011 Edgewall Software

	Type:  '?' or 'help' for help on commands.
        
	Trac [/srv/organismo/sigesp]> 

Dar Permiso al administrador:

Trac [/srv/organismo/sigesp]> permission add administrador TRAC_ADMIN

Actualizar trac:

Trac [/srv/organismo/sigesp]> upgrade

Salir TRAC-ADMIN:

Trac [/srv/organismo/sigesp]> exit

Acceder a trac como administrador:

http://host/trac/

Enlaces:
http://geeks.ues.edu.sv/wiki/index.php?n=Git.Trac

http://blog.milmazz.com.ve/archivos/2010/04/23/instalacion-basica-de-trac-y-subversion
http://blog.chernando.eu/2008/07/20/subversion-trac-apache-ldap

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s