Instalar gemas en Redmine en Windows

Este tutorial muestra un el paso a paso para la instalación de un plugin en Redmine sobre un Sistema Operativo Microsoft Windows.

Suposiciones:

  • SO: Microsoft Windows Seven/Microsoft Windows Server 2008 o superiores
  • REDMINE: 2.6 o superior
  • RAILS: 3 o superior
  • RUBY: 1.9.3 o superior
  • Base de datos: MySQL 5.5 o superior
  • Servidor Web: Apache 2.2
  • Gema bundler

Abrimos el prompt. Presionamos la tecla «Windows» y en el cuadro de búsqueda escribimos «cmd» y se abrirá la consola de windows.

La otra alternativa es hacer click derecho en el logo «Windows» y seleccionar «simbolo del sistema».

Figura 1 – Acceso a Prompt de Windows

Verificamos donde está instalado Redmine, supondremos en este instalador  que la raíz de Redmine estará ubicada en c:\redmine

Descargamos el plugin que queremos instalar (en el ejemplo: redmine_dashboard)

ingresamos en https://github.com/jgraichen/redmine_dashboard y desgargamos el archivo .zip.

Luego de descargado se envía a la siguiente ubicación y descomprimimos la carpeta allí

c:\redmine\plugins\

Debemos respetar el nombre que definió el desarrollador para el plugin

Una vez ubicado el plugin, a través de la consola nos ubicamos en la raíz de Redmine. Teniendo en cuenta que ya tenemos instalada la gema bundler realizamos la instalación de gemas que pueda necesitar la aplicación.

En la raíz de redmine ejecutamos el siguiente comando.

c:\redmine> bundle install

y se instalarán distintas gemas que el plugin puede necesitar para funcionar

Una vez que se terminó la instalación, realizamos las migraciones en la base de datos para que el plugin funcione correctamente. Siempre desde la raiz de Redmine

c:\redmine> RAILS_ENV=production rake redmine:plugins:migrate

Finalizado esto, reiniciamos el servidor Apache.

Podemos utilizar el comando descripto a continuación desde la consola (donde nombre de servicio por lo general es Apache)

http://www.i4development.com.ar/wp-admin/post.php?post=429&action=editapache -n nombre de servicio -k restart

Verificamos que el plugin esté correctamente instalado ingresando al menú de administración y luego en extensiones. en Administración >> Extensiones

Figura 2 – Menú del Administrador

 

Ante dudas o sugerencias, dejanos un comentario.

 

Modificación de la configuración de correo

Este tutorial mostrará como loguearse en el servidor y modificar los parámetros de configuración del correo para el envío de notificaciones desde Redmine.

Es válido para instalaciones de Redmine implementadas con el servidor web Passenger en cualquier distribución GNU/Linux

Vamos a mostrar dos opciones: Desde Windows y luego desde GNU/Linux.

Loguearse desde Windows

Para ingresar al servidor desde Windows podemos utilizar la terminal Putty (la más popular).
La podemos descargar aquí (elige la arquitectura de tu SO). Para Windows recomendamos siempre el instalador MSI.

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

Una vez descargado, lo instalamos y abrimos.
En la siguiente imagen vemos la pantalla un formulario muy bonito donde lo único que nos interesa son los campos superiores «Host Name (or IP address)», «Port» y «Conection Type».

Solo son necesarios los parámetros HostName (nombre de dominio del servidor o ip) y Port (puerto de acceso ssh) y obviamente el tipo de conexión es SSH.

Una vez que llenamos estos campos, presionamos Open, se abrirá una ventana negra pidiéndonos el usuario y luego el password.

Cuando ingresemos el segundo campo no se registrarán campos en la pantalla, esto es por seguridad. Ingresamos la contraseña y tendremos acceso al servidor vía SSH.

Desde GNU/Linux

Desde linux accedemos a la terminal de tu distribución y ejecutamos la siguiente linea:

ssh usuario@mi.servidor.com.ar -p22

En este ejemplo el puerto ssh es 22, no es necesario poner este parámetro cuando utilizamos el puerto estándar, pero si puede ser necesario el mismo cuando el puerto sea distinto.
En ambos casos (Windows o Linux ) una vez ingresados estos datos, el servidor nos mostrará un mensaje similar al siguiente:

The authenticity of host '[mi.servidor.com.ar]:22 ([1.234.56.78]:22)' can't be established.
 ECDSA key fingerprint is SHA128:ed6jIFJDjB8T/IdAadzqU5Y91adVHZCNdlcxdIsEFjqtf60.
 Are you sure you want to continue connecting (yes/no)

Este mensaje nos pregunta si queremos loguearnos en un servidor sobre el cual no podemos asegurarnos su autenticidad, este mensaje siempre nos aparecerá la primera vez. Si nuestra red es segura, escribimos yes y presionamos Enter.

Modificar parámetros

Bueno, ya estamos dentro del servidor, ahora deberás ingresar a la raíz de la aplicación. Ingresa en la terminal la direccion a la raíz.

cd /raiz/de/mi/app

Y ahora, ingresamos a editar el siguiente archivo utilizando el procesador de textos nano.

nano config/configuration.yml

El contenido del archivo tiene el siguiente parámetro. se puede modificar cualquier parámetro, pero siempre manteniendo el formato con el que está configurado para que siga funcionando.

==== SMTP server at example.com using LOGIN authentication and checking HELO for foo.com

email_delivery:
 delivery_method: :smtp
 smtp_settings:
 tls: true
 address: "example.com"
 port: 25
 authentication: :login
 domain: 'foo.com'
 user_name: 'myaccount'
 password: 'password'

una vez modificado se guarda presionando las teclas Ctrl+0, tecleamos Enter, y finalmente Ctrl+X para salir.
Para que se guarden los cambios es necesario reiniciar Redmine. por lo que ejecutamos el siguiente comando en la consola

touch tmp/restart.txt

Con estos comandos finalmente reiniciamos el servidor.
Para probar que se modificó correctamente el servicio ingresamos a Redmine y accedemos (unicamente como administrador) a

Administración >> Configuración >> Notificaciones de Correo >> «Enviar correo de prueba»

Al presionar este enlace en la parte superior nos deberá mostrar una leyenda en verde, todo va bien! «Se ha enviado un correo a micorreo@dominio.com».

Si la leyenda es roja, se muestra el mensaje de error y se deberá verificar la configuración del archivo nuevamente, deberás verificar nuevamente tu configuracion, el mensaje te dirá explicitamente cual es el error.
Una vez modificado los parámetros, es importante desloguearse del servidor sin cerrar la ventana para evitar que un proceso quede huérfano. para esto ejecutamos

exit

Resumen Rápido

Continuar leyendo «Modificación de la configuración de correo»

Extensión Redmine Git Remote

Esta extensión permite clonar y recuperar automáticamente repositorios referenciados desde GitHub/GitLab en la pestaña repositorios de un proyecto en Redmine.
Se define un nuevo tipo de repositorio, GitRemote, el cual le permite asociar un repositorio remoto con su proyecto de Redmine. Primero cree un nuevo repositorio del tipo GitRemote e ingrese la URL Clonada. El identificador y el camino se auto generarán, pero luego usted puede sobrescribirlo.

Para activar, en el proyecto, la funcionalidad se deberá ingresar en Configuración > Módulos > Repositorios

Figura 1 – Módulos del proyecto

Al guardar la configuración luego de la creación del repositorio, los campos identificador y URL se auto generarán (si no se agregaron explícitamente).

Figura 2 – Formulario para crear un nuevo repositorio tipo GitRemote.

Por ejemplo, si usted ingresa https://github.com/dergachev/vagrant-vbox-snapshot como la URL a clonar, se configurará el identificador y el camino del sistema de archivos como sigue:

Identificador: vagrant-vbox-snapshot
Camino: /var/www/redmine/shared/plugins/redmine_git_remote/repos/github.com/dergachev/vagrant-vbox-snapshot

Figura 3 – Repositorio de prueba clonado en el proyecto.

Una vez que la URL remota es validada, la extensión crea un clon limpio del repositorio especificado.

Figura 4 – Pestaña Repositorio, código clonado y detalle de revisiones.

Además es posible mantener actualizado, con los cambios que se realizan en el repositorio original, el código que se encuentra en el proyecto.

Esta extensión es un desarrollo iniciado hace casi tres años. Realizado por AlexDergachev, y está disponible en https://github.com/dergachev/redmine_git_remote.

Actualmente es compatible con Redmine 3.3.x, 3.2.x, 3.1.x, 3.0.x, 2.5.x. Es necesario disponer de los siguientes paquetes en el servidor de Redmine:

  • git 1.7.5+ – mínimamente para soportar get remote add --mirror=fetch origin URL
  • ssh-keyscan.
  • ssh-keygen.

También se pueden encontrar mas detalles en http://www.redmine.org/plugins/redmine_git_remote

¿Que es Redmine?

iconRedmine es una aplicación web para la gestión de proyectos. Está desarrollado en Ruby on Rails y liberado bajo los términos de la licencia GNU v2 (GPL).

Esta aplicación es multiplataforma (Unix, GNU/Linux, Mac, Mac Server y Microsoft Windows), además soporta diversas bases de datos (MySQL, PostgreSQL, Microsoft SQL Server, SQLite) por lo que se adapta a diversos entornos.

Redmine está disponible en el mercado desde hace más de 10 años, con su versión 3.3.1 maduró de excelente modo para los usuarios y desarrolladores que utilizan la herramienta. Adjuntamos algunas capturas de pantalla de la versatil herramienta.

[easymedia-gallery med=»353″ filter=»1″]

Esta herramienta posee distintas características que la hacen una gran opción frente a distintas opciones privativas o libres.

 

Monitoreo sencillo de los proyectos

Monitoreo de Recursos
Redmine ofrece distintas herramientas para realizar el seguimiento del proyecto a través de gráficos y consultas de la información. Así también es posible agregar extensiones para mejorar la vista del monitoreo

Facilidad de uso

La herramienta contiene una gran variedad de opciones personalizables, y aun así cualquier usuario novato puede comenzar a usarla entendiendo el concepto de proyecto y petición.

Tecnología Web

Con la instalación en un servidor permite que cualquier usuario con internet y un navegador pueda interactuar con la herramienta en cualquier momento.

Panel de últimas actividades

Se presenta una breve descripción de las ultimas actividades realizadas en un proyecto, multiproyecto o en general.

Calendario y Diagrama de Gantt

Facilita la comprensión del estado de un proyecto a través de la representación de información en gráficos.

Notificaciones por RSS y correo

Todo el equipo del proyecto se mantiene comunicado con las actualizaciones de estados y novedades ocurridas en el proyecto.

 

Flexibilidad y Customización ante todo

Soporte para múltiples proyectos

Customización de Redmine
Redmine permite personalizar distintas características para adaptar la herramienta al modelo de negocio de la organización

El usuario puede trabajar con varios proyectos a la vez desde el mismo navegador. La herramienta soporta proyectos anidados.

Soporte para múltiples tareas

Permite el manejo de diversos tipos de tareas (peticiones o issues). También soporta diversos tipos de relaciones entre tareas.

Sistema flexible de seguimiento de tareas

Varias características distinguen la capacidad de realizar consultas personalizables de las tareas de usuarios o de un proyecto en particular para el monitoreo de sus actividades.

Soporte para múltiple roles de usuario

Soporta la creación y administración de mútiples perfiles de trabajo para los usuarios.

Control de acceso flexible basado en roles

Un usuario puede diversos roles en diferentes proyectos, lo cual le otorgará la capacidad de realizar solo aquellas tareas permitidas en su rol.

Soporte para múltiples estados

Soporta la utilización de diversos estados para la gestión de los flujos de trabajo.

Soporte para múltiples flujos de trabajo

Es posible configurar un flujos de trabajo para tipo de petición.

Incorporación de campos personalizables

La personalización de los formularios originales permiten flexibilizar el uso de la herramienta para ajustarse a las necesidades propias de cualquier organización.

 

Con Redmine tienes muchas herramientas dentro de una sola

 

Permite adjuntar Noticias, Documentos y Archivos

Cada proyecto distingue la necesidad de documentar información creada a partir del trabajo de los integrantes del equipo. Esta información puede ser alojada en el g

Herramientas extras
Olvídate de mantener distintas herramientas. Centraliza toda la información de tus proyectos y toda la documentación que necesitas. Todo esto gracias a las diversas herramientas de comunicación y organización existentes.

estor para su posterior consulta.

Wiki por proyecto

Este espacio está pensado para que los usuarios se informen sobre el contexto de sus proyectos y mantengan actualizada información relevante a él.

Foro por proyecto

Área de discusión entre los integrantes y la documentación de la misma.

 

Adaptable para otros entornos y otros lenguajes

Integración con herramientas SCM

Repositorios de código
La aplicación integra diversas funcionalidades para hacerla aun más potente, enfoncandola para el uso de equipos de desarrollo de código con repositorios.

Mejora la capacidad de contar con un único centro de información. Se puede contar con el código del software a desarrollar por equipos en un proyecto, pero también utilizar los controladores de versiones para otro fin necesario.

Creación de peticiones por correo

Los usuarios de la herramienta pueden utilizar sus correos para interactuar con la herramienta, sin existir necesidad de estar anteriormente logueados con ella.

Soporta para múltiples idiomas

Actualmente Redmine está traducido en 34 idiomas.

 

Además de todo esto Redmine posee cientos de extensiones creadas por la extensa comunidad de desarrolladores. Las cuales agregan diversas funcionalidades a la herramienta y puede ser instaladas para flexibilizar y potenciar su uso.

Trabajar seguro en Redmine con protocolo HTTPS

httpsTodos sabemos que el protocolo HTTP (Protocolo de Transferencia de Hipertexto) es el que nos permite poder comunicarnos a través de un navegador web. Gracias a el podemos acceder a toda clase de sitios, informarnos, aprender, comunicarnos; pero tiene una debilidad: es inseguro. Para resolver esto se implementó HTTPS (Protocolo de Transferencia de Hipertexto Seguro) el cual se basa en una combinación de dos protocolos diferentes, HTTPS y SSL/TLS.

HTTPS encripta la comunicación que existe entre un cliente (su computadora) y un servidor (donde está alojado el sistema al cual se accede) creando un túnel. En el  caso de HTTP un tercero puede acceder al contenido interfiriendo dentro de la conexión Cliente-Servidor. Por esto es recomendable verificar que el sitio web donde ingresas información sensible trabaja con HTTPS para proteger la intimidad que requiere la conexión entre tu equipo y el servidor, y que terceros no puedan acceder a esta información. Esto suena muy bien, pero también el protocolo incluye lentitud en la carga del sitios web, pues con cada paquete que se transmite al servidor se realiza un procedimiento de validación.

HTTP-vs-HTTPS
Diagrama comparativo de los protocolos HTTP y HTTPs, donde un tercero puede leer/interferir en la comunicación entre el cliente y el servidor, o no.

Redmine posee proyectos con información sensible y es importante poder protegerla y asegurarle a los usuarios que terceros no accederán a su trabajo (además de otras medidas para asegurar esto). Redmine ofreprotocolohttpsce, por defecto, generar enlaces con el protocolo https, de esta forma cuando los usuarios ingresan a Redmine a través de una notificación en su correo, lo hacen directamente a través de la interfaz segura. Es posible configurar la herramienta con HTTPS para que viaje con seguridad a nivel de la capa de transporte del modelo OSI, para esto se puede contratar los servicios pagos (desde 5 dólares anuales) o utilizar algunas alternativas gratuitas que hoy en día encontramos en la red.

Una gran alternativa es Let’s Encricertbootlogopt. Esta herramienta nos brinda una solución a través de una sistema libre, automatizado, abierto y muy sencillo de manejar.  A partir de esto podremos segurizar nuestros sitios webs, siempre y cuando podamos descargarnos e instalar el script del cliente Certbot en nuestro servidor. Esto es rápido y sencillo.

El script es compatible con diferentes sistemas operativos, está actualmente instalado en millones de servidores, aun así el sistema está en una fase beta test, por lo que aun está siendo mejorado continuamente.

Otras características que presenta esta herramienta es la de no se guardar las llaves privadas de los certificados en otro lugar que no sea el servidor local donde se instala el script. Además, es posible obtener certificado para múltiples dominios en un solo servidor. Pero es requisito tener privilegios de root en el servidor donde quieras utilizar la funcionalidad.

El software Cerbot y la documentación están licenciadas bajo Apache 2.0. Si quieres saber más también puedes consultar la sección de FAQ de Certbot, donde se aclaran algunas características descriptas aquí y más.

El modelo Kanban y Redmine

Muchas organizaciones necesitan establecer metas, organizar los procesos que las mantiene vivas en el mercado. En el marco de las herramientas ágiles se encuentra Kanban.

Que es Kanban

Kanban es una metodología enfocada en procesos repetitivos. Pensada por los Japoneses (Toyota), en 1953, para mejorar la gestión de sus productos, evitar el gasto innecesario de materia prima y disponer de materiales en el momento justo.
La metodología permite establecer una serie de etapas medibles, controlables y modificables para el desarrollo de un producto. Cada etapa posee una cantidad máxima de items definida, que pueden ser trabajados al mismo tiempo (WIP: Work in progress), por lo tanto controla la sobrecarga de trabajo.  Dentro de cada etapa existen responsables que realizan las actividades con un determinado rol, que puede cambiar de etapa a etapa.

Kanban Panel
Figura 1 – Ejemplo Tablero Kanban

Este modelo tiene distintas similitudes y diferencias con el modelo Scrum. Las ventajas de utilizar la metodología Kanban se suscitan en las siguientes:

  • Definición de un ciclo iterativo de actividades a partir de etapas
  • Definición de un WIP por cada etapa
  • Definición de un WIP por cada usuario

Todo esto nos servirá para poder monitorizar los tiempos en que se completan etapas y productos terminados. Además aprender sobre como mejorar estos tiempos y optimizar cada una de las etapas.

Cada ítem, posee una tarjeta que describe el producto y la etapa en la que se encuentra. Esta tarjeta es clave, ya que aloja información precisa acerca de la producción, códigos especiales o información para controles de calidad.

Figura 2 – Tarjeta Kanban de Producto

Redmine

Redmine es un gestor de proyectos web Open Source basado en la Tickets, es una sistema que ya está en su versión 3.x, es posible instalarlo en sistemas operativos GNU/Linux, Microsoft, Mac OS entre otros según los desarrolladores. Entre otras características permite trabajar con distintos perfiles de usuarios, múltiples proyectos, proyectos anidados, agregar campos personalizados, trabajar con repositorios,.. entre otras capacidades. Lo distinguible para nosotros es que podemos modificar la estructura de Redmine y podemos agregarle funcionalidades a partir de extensiones.

La Funcionalidad Kanban

Hace tiempo es posible utilizar Redmine con Kanban, nosotros probamos ekanban. Este Plugin permite utilizar el modelo en Redmine y generar un ciclo de trabajo dentro de un proyecto a partir de diferentes configuraciones.

Figura 3 – Tablero Kanban en Redmine

Compatible, según los desarrolladores para las versiones de redmine 2.1.x y 2.2x, nosotros pudimos probarlo exitosamente en una versión 2.6.5 en nuestros servidores. Posee diversas características a mejorar, pero eso no le quita la funcionalidad que nos facilita al poder trabajar con Kanban sobre Redmine.