Cómo instalar Redmine 2.2.1 en Ubuntu 12.04

redmine

En la entrada anterior expliqué los motivos que nos llevaron a elegir Redmine para la gestión de incidencias en el INAP. En esta entrada voy a detallar los pasos necesarios para su instalación en un servidor Ubuntu Server.

Para el tutorial voy a partir de un servidor Ubuntu Server 12.04 con Mysql 5.5.28 y OpenLdap 2.2.28. Para los detalles de su configuración podéis consultar esta entrada. Voy a suponer instalado y configurado apache.

Una vez preparado el servidor, hay que:
  • Configurar un esquema y usuario en Mysql
  • Instalar Ruby y Rails utilizando RVM
  • Instalar Apache2
  • Descargar y configurar redmine
  • Configurar el acceso via Openldap

Configurar un esquema y usuario en Mysql

Utilizando Mysql Workbench, configuramos un esquema "redmine" y un usuario "redmine_usr".

Instalar Ruby y Rails

Tal y como se explica aquí, es poco recomendable utilizar los repositorios para instalar Ruby y Rails, En su lugar, conviene utilizar el script rvm para descargar las versiones exactas que necesita Redmine. Este script permite tener instaladas diferentes instancias de Ruby y Rails sin que haya conflicto entre ellas, lo que es muy útil si en algún momento se despliega otra aplicación Ruby On Rails en el mismo servidor. Las versiones concretas son Ruby 1.9.3 y Rails Rails 3.2.11:
apt-get install build-essential git-core curl #paquetes básicos para compilar
curl -L get.rvm.io | bash -s stable #descargar rvm
addgroup root rvm #añadir el usuario root al grupo rvm para que pueda utilizarlo
Tras instalar RVM, hay que hacer logout y login. Tras ello se comprueba las dependencias que es necesario instalar
rvm requirements

Ruby requirements

Por lo tanto:
apt-get install build-essential openssl libreadline6 libreadline6-dev curl
	git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3
	libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool
	bison subversion pkg-config
Una vez cumplidos los requisitos se instala Ruby 1.9.3 y Rails 3.2.11:
rvm install 1.9.3
gem install rails -v 3.2.11 #Rails viene empaquetado en una gema
Dado que se va a emplear Mysql, hay que instalar componentes adicionales:
apt-get install libmysqlclient-dev
gem install mysql2 activerecord-mysql-adapter

Descargar y configurar redmine

Los pasos son:
  • Descargar el tar.gz e instalar las dependencias necesarias.
  • Preparar los archivos de configuración y generar una clave secreta.
  • Crear las tablas en base de datos y cargar los datos iniciales
  • Dar los permisos necesarios e instalar passenger como módulo de Apache
  • Configurar un vhost o sub-url

Descargar el tar.gz e instalar las dependencias necesarias

Se crea una carpeta en /usr/share/redmine y se descomprime dentro el tar.gz de Redmine 2.2.1. Tras ello hay que instalar la gema "bundler", que ayuda a resolver dependencias:
gem install bundler
Una vez instalado bundler, se puede utilizar para comprobar qué gemas y librerías faltan. La ejecución de bundle fallará cada vez que falte algo, tras instalar el componente hay que volver a ejecutar bundle:
bundle install --without development test #dentro de /usr/share/redmine
En mi caso hubo que instalar los paquetes "libpq-dev" y "libmagickwand-dev"

Preparar los archivos de configuración y generar una clave secreta

Una vez instaladas todas las dependencias, hay que configurar dos ficheros de configuración:
  • /usr/share/redmine/config/configuration.yml #configuración del servidor de correo
  • /usr/share/redmine/config/database.yml #configuración de la base de datos
Ambos ficheros tienen un archivo de ejemplo asociado en la misma carpeta y son bastante sencillos. Basta con especificar la cadena de conexión de base de datos y el servidor SMPT para el envío de emails de notificación.

Nota importante: Cuidado al utilizar SMTP anónimo. Muchos servidores de correo están configurados de modo que si se usa acceso anónimo sólo se pueden enviar correos a direcciones del mismo dominio. Por lo tanto, si algún usuario tiene un correo @otrodominio.com, no le llegarán los correos de notificación.

El siguiente paso es generar una clave con:
rake generate_secret_token

Crear las tablas en base de datos y cargar los datos iniciales

Ahora hay que crear las tablas necesarias en el modelo de datos y rellenarlas con los datos iniciales. Este tutorial solo hace referencia al entorno de producción, pero se pueden configurar varios entornos como pruebas y desarrollo:
RAILS_ENV=production rake db:migrate
RAILS_ENV=production rake redmine:load_default_data

Dar los permisos necesarios e instalar passenger como módulo de Apache

A continuación, hay que darle permisos en las carpetas en las que se va a escribir al usuario que vaya a ejecutar redmine (en mi caso, el usuario www-data de apache) y crear un enlace simbólico en /var/www:
chown www-data:www-data files log tmp public
chmod -R 775 files log tmp public
ln -s /usr/share/redmine/public /var/wwwredmine
Para ejecutar una aplicación Ruby on Rails es necesario un servidor compatible, como Passenger o WEBrick. Por lo tanto, vamos a instalar Passenger y el módulo para ejecutarlo desde apache:
gem install passenger -v '3.0.17'
passenger-install-apache2-module #si no se cumple algún requisito lo notificará
En mi caso, fue necesario instalar las siguientes dependencias:
apt-get install libnet-ldap-perl php5-ldap libldap-2.4-2 libldap2-dev libaprutil1-ldap
	libauthen-simple-ldap-perl libapache2-mod-perl2
Por último hay que ejecutar un script incluído en passenger para configurar el módulo de apache:
/usr/local/rvm/gems/ruby-1.9.3-p374/bin/passenger-install-apache2-module #la ruta depende de si se instaló rvm como root o como otro usuario

Configurar un vhost o sub-url

Sólo queda establecer cómo se va a acceder a Redmine. Los pasos concretos varían si se quiere configurar un vhost o basta con una sub-url. Podéis encontrar más información aquí. Para una configuración sencilla con sub-url, el archivo /etc/apache2/sites-avalaible/default queda así:
<VirtualHost *:80>
	LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p374/gems/passenger-3.0.17/ext/apache2/mod_passenger.so
	PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p374/gems/passenger-3.0.17
	PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p374/ruby
	(...)
	RailsBaseURI /redmine  Options -MultiViews
	(...)
</VirtualHost>

Configurar el acceso via Openldap

La autenticación por Openldap es muy sencilla. Basta con indicar en "Administration" => "LDAP authentication" la URL y puerto del servidor openldap, el filtro y base DN y los campos que corresponden con los atributos de los usuarios (nombre de usuario, nombre, apellidos, email). Si seleccionamos el checkbox "On the fly user creation", cuando un usuario de Openldap se autentique en Redmine por primera vez se le creará un usuario en Redmine. LDAP Si el servidor openldap permite búsquedas anónimas, no es necesario rellenar ninguna cuenta. En Redmine pueden convivir usuarios locales (configurados en Redmine) y usuarios de Ldap. Es bastante útil configurar al menos un administrador local. De este modo, si en algún momento la autenticación por Ldap deja de funcionar, podremos entrar con el administrador local para ver cual es el problema.

Referencias y recursos

Publicado en tutoriales Etiquetado con: , , , , , ,
2 Comentarios en “Cómo instalar Redmine 2.2.1 en Ubuntu 12.04
  1. German Martinez dice:

    que posibilidad hay de conseguir un paquete donde uno lo pueda bajar completo y lo guarde en un disco (pendrive) y luego lo lleve a una Pc que no esta conectada a internet y pueda instalar redmine ???

  2. No se me ocurre un modo sencillo de hacerlo. Redmine en sí no es un problema (te llevas el tar.gz y listo), pero es complicado instalar offline Ruby y las dependencias (Gemas) de Redmine.

    En StackOverflow hay una respuesta que te puede valer: http://stackoverflow.com/questions/5919591/installing-ruby-offline-using-rvm

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*