Manual redmine para tecnicos

De WikiEtl
Saltar a: navegación, buscar

Apuntes básicos de svn y redmine.

En la máquina docserv2.lab.it.uc3m.es tenemos estos dos host virtuales :

Redmine :	Es una aplicación que permite la monitorización vía web de proyectos SVN.
	      	Su url es https://redmine.lab.it.uc3m.es
SVN :		Es un servicio de control de versiones.
		Su url es https://svn.lab.it.uc3m.es

Ambos servicios están alojados en la misma máquina, pero funcionan de forma independiente:

SVN corre por debajo de redmine, de forma que aun que redmine se caiga o deje de funcionar, podremos seguir haciendo peticiones a SVN a través de la página web o de la consola.

Redmine nos permite monitorizar proyectos SVN usando su página web, si SVN se cae, redmine seguirá funcionando, aun que no tendrá acceso a los repositorios, al no estar el servicio de SVN corriendo.


Guía para técnicos de Svn y Redmine.

El usuario que usaremos se llama “Administrador”, la contraseña preguntarla.


Problemas de espacio

Los repositorios tienen un máximo de 30Mbs, en el momento en que estos 30 Mbs son superados, el repositorio no permite la realización de ningún commit. Cuando esto ocurra acudirán a nosotros para que les permitamos el acceso al repositorio de forma que puedan borrar cosas.

Lo que haremos será permitirles almacenar 35Mbs durante 1 semana, de forma que puedan volver a acceder al repositorio para liberar espacio.



Creación de proyectos

En principio no deberíamos de ser nosotros los que creamos los proyectos, pero ya que los scripts están hechos, lo dejo por aquí por si acaso fuera útil para algún caso concreto.

Para la creación de los proyectos tenemos un script, que se encuentra en la maquina : docserv2.lab.it.uc3m.es en el path : /usr/local/share/redmine-2.1/extra/svn/scripts/CreacionProyectosRedmine.sh

Este script básicamente realiza inserciones en las tablas de la base de datos “redmine”, que se encuentra en el servidor docserv2.lab.it.uc3m.es.

Es necesario un archivo con los nias de los alumnos que forman parte de la asignatura, este archivo ha de ser renombrado con el nombre de “lista.txt” y ha de estar localizado en la misma carpeta en la que se encuentra el script de CreacionProyectosRedmine.sh .



Los proyectos de Redmine se crean sin ningún repositorio asignado, para crear un repositorio y asignarlo a un proyecto en concreto, tenemos un script que se llama reposman.rb que está almacenado en /usr/local/share/redmine-2.1/extra/svn/reposman.rb . Es un script escrito en el amigable lenguaje de ruby...

Este script está en el crontab y se ejecuta cada 5 minutos, por lo que no es necesario ejecutarlo a mano en ningún caso, ya que como mucho pasan 5 minutos entre la creación del proyecto y la creación del repositorio.

El script crea un carpeta física con el nombre del proyecto en el docserv2, crea un repositorio SVN en la misma, y lo enlaza por medio de mysql al proyecto de redmine.

El script se ejecuta y comprueba si hay proyectos que no tengan repositorio, en caso de ser así, les crea un repositorio automáticamente, por lo que esta completamente automatizado, lo comento solo para que se sepa de su existencia, por si en algún momento es necesario llevar acabo alguna modificación.

La ejecución programada en el crontab es esta : ruby /usr/local/share/redmine-2.1/extra/svn/reposman.rb --redmine https://redmine.lab.it.uc3m.es --svn-dir /var/www/redmine/public/svn/ --owner www-data -u https://svn.lab.it.uc3m.es/Redmine/

En la ejecución se especifican :

La ruta del script : /usr/local/share/redmine-2.1/extra/svn/reposman.rb
La URL del  programa redmine : --redmine https://redmine.lab.it.uc3m.es
El directorio Físico de SVN en el servidor : --svn-dir /var/www/redmine/public/svn/
El propietario del directorio Físico que se va a crear : --owner www-data
La URL del repositorio de SVN : -u https://svn.lab.it.uc3m.es/Redmine/

El formato del fichero es el siguiente :

0066955 0060826 0066554
0066955 0055443 0022212
0011231 0122311

Cada linea del fichero representa un repositorio, si en la linea hay 3 nias, pues ese repositorio tendrá 3 usuarios, si hay un nia, pues ese repositorio tendrá un único usuario.

Es importante que el fichero tenga el formato correcto, así que hay que repasar el fichero, comprobar que no tenga caracteres extraños, que las separaciones entre nias son espacios en blanco, que no hay lineas en blanco entre los diferentes repositorios, etc.

Una vez que tenemos el fichero llamado lista.txt preparado ejecutaremos el script de la siguiente manera :


El script recibe tres parámetros :

1 – El nombre de la asignatura, que será el nombre del proyecto principal en redmine.
2 – El usuario del profesor, que será creado de forma automática si no existía aun.
3 - El email del profesor, al que enviaremos los datos de los repositorios creados.

Ingresamos en el servidor docserv2.lab.it.uc3m.es Accedemos con el comando CD a /usr/local/share/redmine-2.1/extra/svn/scripts/ Copiamos el fichero de nias a la carpeta en la que nos encontramos.

Ejecutamos :

Sudo bash ./CrearProyectoAsginatura.sh nombre_asignatura login_profesor email_profesor

Automáticamente se crean el proyecto principal “nombre_asignatura” y se da permisos al usuario “login_profesor” sobre el mismo.

Después se crean los proyectos hijo, nombre_asignatura_grp1 ... _grp2 etc... se da permiso sobre el mismo al usuario “login_profesor” y a los nias que aparecen en la linea.


Según este ejemplo, redmine creará, 4 repositorios:

Al repositorio nombre_asignatura tendrá acceso el usuario del profesor en modo de lectura y escritura, y todos los alumnos en modo de solo lectura.
Al repositorio nombre_asignatura_grp1 tendrán acceso los usuarios : 0066955,0060826,0066554,profesor en modo de lectura y escritura.
Al repositorio nombre_asignatura_grp2 tendrán acceso los usuarios : 0066955 0055443 0022212,profesor en modo de lectura y escritura.
Al repositorio nombre_asignatura_grp3 tendrán acceso los usuarios : 0011231 0122311,profesor en modo de lectura y escritura.


Cuando se habla de proyecto principal y proyecto hijo, entendemos que se refiere a que se crea un proyecto padre (Primario) para la asignatura y dentro del mismo, se crean todos los proyectos hijo (Secundarios) que se requieran.

El email que le hemos pasado como parámetro al script es el que se usa para enviar automáticamente, un resumen de los repositorios creados, con sus direcciones y de los alumnos pertenecientes a los mismos.

A los alumnos también se les envía un email con los datos de su repositorio, y las urls que pueden usar para conectarse.


Una vez que ha sido lanzado el script, tenemos que realizar algunas comprobaciones :


La creación de los proyectos es automática, y deberían de estar disponibles en redmine.lab.it.uc3m.es inmediatamente, pero el script que crea los repositorios (reposman.rb) en la máquina, y que los incluye en el servicio de SVN se ejecuta de forma independiente y cada 5 minutos, de forma que es posible que tengamos que esperar un rato para poder comprobar que cada proyecto tiene su repositorio creado correctamente.


Para comprobar que los repositorios han sido creados de forma correcta, ingresamos en un navegador la url de uno de los repositorios en cuestión : nombre_asignatura_grp1, ..._grp2, ..._grp3 etc... y comprobamos que con el usuario Administrador podemos acceder al mismo.

Otra forma de comprobar que se ha creado correctamente el repositorio sería usar en una terminar el comando: svn list https://svn.lab.it.uc3m.es/nombre_asignatura_grp1

De forma predeterminada se intentará autenticar con el usuario con el que estemos logueados en la terminal, que no tiene porque tener permisos sobre los repositorios, pero si introducimos la contraseña en blanco para que de fallo, nos aparecerá un promp donde podremos ingresar el usuario con el que queremos realizar el segundo intento. Ingresamos el usuario Administrador y la contraseña y si está bien creado, nos debería de funcionar.


Borrado de proyectos

Desde la página web lo único que se puede hacer es cerrar proyectos, de forma que el proyecto no se elimina, pero si desaparece (A no ser que se configure para ver proyectos cerrados también) de la lista de proyectos de los miembros en cuestión.

Para eliminar definitivamente los proyectos es necesario que se utilice el script de:

BorrarProyectosRedmine.sh 

almacenado en la ruta :

/usr/local/share/redmine-2.1/extra/svn/scripts

El script tiene dos funcionalidades :

1 Borrar todos los proyectos de una asignatura : usando el script de esta forma :

./BorrarProyectosRedmine.sh labas

En este caso el script lo que realiza es una búsqueda de todos los proyectos llamados "labas*" y los elimina. Para que funcione de forma recursiva es necesario que todos los proyectos de la asignatura se hayan creado usando el script de : CrearProyectosRedmine.sh


2 Borrar un único proyecto :

./BorrarProyectosRedmine.sh labas_grp01

En este caso, se borrará el proyecto llamado labas_grp01, y ningún otro proyecto, ya que lo que el script hace es usar el nombre "labas" y añadirle "_grp$1" a continuación, incrementando el valor de i de forma que elimine todos los proyectos creados siguiendo este patrón.

Alta de profesores varios en proyectos existentes

Es posible que sea necesario que varios profesores, tengan acceso a el mismo repositorio, de forma que, se ha creado un script que nos permite dar de alta usuarios con permisos de profesor en los proyectos ya creados.

Es un script que solo recibe estos dos parámetros:

El usuario del profesor a dar de alta. El proyecto sobre el que se quiere dar de alta al usuario.

En el caso de que se quiera dar de alta al profesor en todos los repositorios de la asignatura, se introduce el nombre del repositorio de la asignatura.

Ejemplos:

Se quiere dar de alta al usuario ggasco en el proyecto ddd_grpo1

bash ./AltaProfesores.sh ggasco ddd_grpo1


Se quiere dar de alta al usuario ggasco en todos los proyectos de la asignatura ddd

bash ./AltaProfesores.sh ggasco ddd

El script está pensado para dar de alta a profesores, por lo que el usuario que se da de alta, tiene permisos de profesor sobre el repositorio.


No usar este script para dar de alta usuarios normales.


Borrar las tablas de redmine

ESTE SCRIPT BORRA TODAS LAS TABLAS DE LA BASE DE DATOS DE REDMINE.

La idea es que este script se use para purgar la base de datos de redmine, por si fuera necesario borrar todos los datos.

El script es muy sencillo, no recibe ninguna clase de parámetro, y borra todas las tablas de la base de datos de redmine que almacenan información sobre los usuarios / proyectos. Los únicos usuarios que respeta son ggasco y Administrador, que son usuarios administradores y por lo tanto no deben de ser borrados.

¡¡TODOS LOS PROYECTOS DE REDMINE SON BORRADOS CUANDO SE USA ESTE SCRIPT, TANTO LOS PROYECTOS COMO LOS REPOSITORIOS!!

Enlaces útiles:

Guía para dar de alta usuarios para los profesores.

Media: GuiaCrearUsuario.doc

Media: GuiaCreacionPeticiones.doc

Media: GuiaCrearProyecto.doc

Media: GuiaModificarPermisos.doc

Media: GuiaVerRepositorio.doc

Media: GuiaIntroducirTiempo.doc

Media: ManualInstalacionRedmine.doc‎

Manual_Redmine

Guía oficial de Redmine (Ingles)

Guía oficial de Redmine (Español)

Guía oficial de Peticiones en Redmine

Foro oficial de Redmine