ruby project amangement gantt
Probado en Ubuntu 12.04.2 LTS
http://www.redmine.org/projects/redmine/wiki/RedmineInstall
1. Descarga y descompresion (en este ejemplo en '/var/www/redmine'):
http://www.redmine.org/projects/redmine/wiki/Download
cd /var/www sudo wget http://rubyforge.org/frs/download.php/76771/redmine-2.2.3.tar.gz sudo tar xvfz redmine-2.2.3.tar.gz sudo ln -s redmine-2.2.3 redmine sudo chown -R www-data:www-data redmine
2. (OPCIONAL) Instalar paquetes. Los necesitamos si vamos a usar MySQL y RMagick (para manipular PDF y PNG):
sudo aptitude install libmysqlclient-dev imagemagick libmagickwand-dev
Depende de si tenemos un sistema muy precario:
sudo aptitude install make
3. Instalar 'bundler' y las 'gems' requeridas:
3.1 (Opcional, solo para Debian) Instalar paquetes para que no casque la gem de json:
sudo aptitude install ruby-mkrf ruby-dev
3.2. Instalar:
Nuevo (21/4/2016)
sudo aptitude install ruby
Antiguo
sudo aptitude install rubygems
cd /var/www/redmine sudo gem install bundler sudo bundle install --without development test postgresql sqlite
OJO si intentamos 'sudo aptitude install rubygems -R' fallara en la instalacion de la gem de json
3.3. (Opcional)
Depende de la version de ruby:
<= 1.8.6 : unsupported = 1.8.7 : gem install rdoc-data; rdoc-data --install = 1.9.1 : gem install rdoc-data; rdoc-data --install >= 1.9.2 : nothing to do! Yay!
En este caso:
sudo gem install rdoc-data; sudo rdoc-data --install
4. Crear el usuario para conectarse a la Base de Datos (MySQL en este ejemplo):
create database redmine character set utf8; create user 'redmine'@'localhost' identified by 'my_password'; grant all on redmine.* to 'redmine'@'localhost';
5. Crear el archivo de configuracion (MySQL en este ejemplo):
sudo vim /var/www/redmine/config/database.yml
Con el siguiente contenido:
production: adapter: mysql database: redmine host: localhost username: redmine password: my_password
6. Generar la clave secreta de sesion:
cd /var/www/redmine; sudo rake generate_secret_token
7. Crear el esquema de Base de Datos (hacerlo como 'root' creo que es necesario):
cd /var/www/redmine; sudo RAILS_ENV=production rake db:migrate
8. Alimentar de datos la Base de Datos (hacerlo como 'root' creo que es necesario):
cd /var/www/redmine; sudo RAILS_ENV=production rake redmine:load_default_data
9. Arrancar el servidor web de prueba y probar que redmine es accesible:
cd /var/www/redmine; sudo ruby script/rails server webrick -e production
Abrir un navegador y acceder a redmine:
http://localhost:3000
Usuario y contrasenya: admin
Incidencia:
http://www.redmine.org/issues/11887
Objetivo: establecer que un campo (por ejemplo “Description”) sea obligatorio cuando la incidencia llega a un determinado estado (“In progress” por ejemplo) dentro del workflow de un determinado tracker.
Problema: Si el usuario es “admin” aparentemente nunca se le aplica esta restriccion, no importa al rol o roles que pertenezca
Explicacion: El comportamiento si el usuario es “admin” no es muy intuitivo. En resumen existe la siguiente regla: el campo (“Description” en la imagen de ejemplo) y el estado (“In progress” en la imagen de ejemplo) tienen que estar marcados como “Required” o “Read-only” para TODOS los roles existentes si queremos que se aplique tambien a los usuarios que son “admin”.
Basta con que un rol no tenga este campo seleccionado, o que a posteriori se anyada un nuevo rol en otro proyecto etc.. para que a los usuarios “admin” no se les aplique la restriccion.
Sugerencia: Que los usuarios normales del sistema NO sean admins, porque estos heredan los permisos de TODOS los roles, y es un infierno ajustarlos todos.
http://www.redmine.org/projects/redmine/wiki/HowTo_configure_Apache_to_run_Redmine Seccion 'Ubuntu Server (Version ?) (This not don't work for 8.04 LTS)'
IMPORTANTE Seguir las instrucciones siguientes, es mucho mas simple que en las instrucciones de arriba.
1. Instalar el modulo passenger y habilitarlo:
sudo aptitude install libapache2-mod-passenger sudo a2enmod passenger
2. Habilitar modulo SSL:
sudo a2enmod ssl
3. Configurar virtualhost:
<VirtualHost *:443> ServerName redmine.myserver.com ServerAdmin webmaster@localhost DocumentRoot /var/www/redmine/public SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/redmine/public> RailsEnv production RailsBaseURI /redmine Options Indexes ExecCGI FollowSymLinks Order allow,deny allow from all AllowOverride all </Directory> ErrorLog ${APACHE_LOG_DIR}/redmine.error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/redmine.access.log combined </VirtualHost>
IMPORTANTE la ruta es /public (/var/www/redmine/public en el ejemplo)
4. Reiniciar apache:
sudo /etc/init.d/apache2 restart
5. Acceder:
http://redmine.myserver.com
Si queremos que redmine envíe notificaciones:
1. Crear el archivo:
sudo vim /var/www/redmine/config/configuration.yml
Con el siguiente contenido:
production: email_delivery: delivery_method: :sendmail
BUG (http://www.redmine.org/issues/13904): Si usamos ssmtp en lugar de Postfix, la configuracion sera:
production: email_delivery: delivery_method: :sendmail sendmail_settings: arguments: '-i'
2. (COMPROBAR) Creo que es necesario reiniciar el servidor de páginas web, apache en este caso:
sudo /etc/init.d/apache2 restart
3. Iniciar sesión en redmine con un usuario con permisos de administrador
4. Ir a Administration / Settings / Email notifications y realizar los ajustes pertinentes
5. Probar a asignar una tarea a un usuario, debería llegarle un mensaje. Se puede mirar los logs:
sudo tail -F /var/log/mail.log
... Mar 21 18:25:06 itcumulus postfix/pickup[832]: AB7FB46031: uid=1000 from=<ubuntu> Mar 21 18:25:06 itcumulus postfix/cleanup[2864]: AB7FB46031: message-id=<20130321182506.AB 7FB46031@localhost> Mar 21 18:25:06 itcumulus postfix/qmgr[833]: AB7FB46031: from=<REMITE@DOMINIO.COM>, size =338, nrcpt=1 (queue active) Mar 21 18:25:07 itcumulus postfix/smtp[2868]: AB7FB46031: to=<DESTINO@DOMINIO.COM>, relay=ASPM X.L.GOOGLE.com[173.194.75.26]:25, delay=0.52, delays=0.04/0.01/0.11/0.36, dsn=2.0.0, statu s=sent (250 2.0.0 OK 1363890307 l8si26312242vdw.150 - gsmtp) Mar 21 18:25:07 itcumulus postfix/qmgr[833]: AB7FB46031: removed
Las notificaciones por correo incluyen un enlace URL al ticket que origino la notificacion. Esa URL se construye concatenando protocolo (http o https) + hostname (localhost por defecto) + puerto (3000 por defecto). Para cambiarlo:
1. Editamos archivo de configuracion:
sudo cp /srv/www/redmine/config/settings.yml /srv/www/redmine/config/settings.yml.bak sudo vim /srv/www/redmine/config/settings.yml
Y ajustamos los siguientes parametros:
... host_name: default: redmine.example.com ... protocol: default: https ...
2. No se si es estrictamente necesario, pero reinicio Apache:
sudo /etc/init.d/apache2 restart
1. Login como admin
2. Ir a Administration / LDAP authentication
3. Pulsar en “New authentication mode”
4. Rellenar los campos tal que asi:
Setting | Value | Comment |
---|---|---|
Name | LDAP de Mi empresa | |
Host | ldap.example.com | |
Port | 636 | Usamos LDAPS, no STARTTLS |
LDAPS | Marcado | Usamos LDAPS, no STARTTLS |
Account | cn=admin,dc=example,dc=com | Es recomendable crear un usuario con permisos de solo lectura en lugar de este |
Password | * | - |
Base DN | ou=people,dc=example,dc=com | - |
On-the-fly user creation | Marcado | - |
Login attribute | uid | - |
5. Grabar
6. Probar
7. Si funciona y queremos mantener los mismos usuarios (opcion recomendable):
7.1. Iniciar sesion con un usuario con permisos de administrador (probablemente “admin”)
7.2. Ir a “Administration/users”
7.3. (Para cada uno de los usuarios) pulsar sobre el nombre
7.4. (Para cada uno de los usuarios) en el desplegable “Authentication mode” seleccionar LDAP (en nuestro caso aparecera “LDAP de Mi empresa”)
7.5. (Para cada uno de los usuarios) pulsar “Save”
1. (OpenLDAP server) Enable memberof overlay
1.1. Create a file:
vim ~/memberof_add.ldif
With below content:
dn: cn=module,cn=config objectClass: olcModuleList cn: module olcModulePath: /usr/lib/ldap olcModuleLoad: memberof
1.2. Create a file:
vim ~/memberof_config.ldif
With below content:
dn: olcOverlay=memberof,olcDatabase={1}hdb,cn=config objectClass: olcMemberOf objectClass: olcOverlayConfig objectClass: olcConfig objectClass: top olcOverlay: memberof olcMemberOfDangling: ignore olcMemberOfRefInt: TRUE olcMemberOfGroupOC: groupOfNames olcMemberOfMemberAD: member olcMemberOfMemberOfAD: memberOf
1.3. Load them. It will depend on your OpenLDAP configuration, so we will propose some possibilities:
sudo ldapadd -c -Y EXTERNAL -H ldapi:/// -f memberof_add.ldif sudo ldapadd -c -Y EXTERNAL -H ldapi:/// -f memberof_config.ldif
Or:
ldapadd -D cn=admin,cn=config -w "password" -H ldapi:/// -f memberof_add.ldif ldapadd -D cn=admin,cn=config -w "password" -H ldapi:/// -f memberof_config.ldif
A restart is NOT needed if you use dynamic runtime configuration engine (slapd-config).
1.4. (Optional) Test it:
ldapsearch -D cn=admin,dc=example,dc=com -x -W -b 'dc=example,dc=com' -H 'ldap://127.0.0.1:389/' '(&(objectClass=posixAccount)(memberOf=cn=ldapredmine,ou=groups,dc=example,dc=com))'
2. (OpenLDAP server) Create the group. In this example the user is “ldap_user_1” and the group is “ldapredmine”:
dn: cn=ldapredmine,ou=groups,dc=example,dc=com cn: ldapredmine description: Staff members allowed to login to redmine ticketing system member: cn=ldap_user_1,ou=people,dc=example,dc=com objectclass: groupOfNames objectclass: top
Adjust “dn” and “cn”s to fit to your DIT structure
3. (Redmine) Edit the LDAP authentication mode. In my case “ldap_user_1” is a “posixAccount” objectclass:
Base DN | dc=example,dc=com |
Filter | (&(objectClass=posixAccount)(memberOf=cn=ldapredmine,ou=groups,dc=example,dc=com)) |
1. Crear el siguiente documento ('/srv/www/redmine' es la ruta a la instancia redmine):
sudo vim /srv/www/redmine/config/additional_environment.rb
Con el siguiente contenido:
config.logger = Logger.new('/var/log/redmine.log', 2, 1000000) config.logger.level = Logger::INFO
2. Ajustar permisos por si las moscas:
sudo chown www-data:www-data /srv/www/redmine/config/additional_environment.rb
3. Reiniciar apache:
sudo /etc/init.d/apache restart
Si movemos un redmine de un servidor a otro hay que hacer los clasicos pasos de:
Pero ademas hay que acceder al directorio donde esta el sistema de archivos y ejecutar:
sudo bundle install --without development test postgresql sqlite
Sucede porque no existe ese valor en la base de datos. Solucion:
cd /srv/www/redmine; sudo RAILS_ENV=production rake db:migrate