Redmine

De DiouxX's Wiki
Aller à : navigation, rechercher
Cette page va vous permettre de mettre en place Redmine utilisant une base de données PostgreSQL.


Utilisateur Redmine

Pour des raisons de sécurité, il est préférable de créer un utilisateur spécifique à Redmine pour utiliser la base :

Konsole.png
[root@ordi ~]# addgroup redmine
[root@ordi ~]# adduser redmine --no-create-home --ingroup redmine


Ruby

Pour installer ruby, utilisez la commande suivante :

Konsole.png
[root@ordi ~]# apt-get install build-essential ruby1.8-dev rubygems rake


PostgreSQL

Pour l'installation, référencer vous à la page sur PostgreSQL

Création d'un user

Pour créer un utilisateur, il faut d'abord se connecter en tant que postgres

Konsole.png
[user@ordi ~]$ sudo -s -u postgres


On peux maintenant créer l'utilisateur qui va être propriétaire de la database :

Konsole.png
[user@ordi ~]$ createuser redmine --no-superuser --no-createdb --no-createrole --login --pwprompt --encrypted


Création de la database

Création de la database :

createdb --owner=redmine --encoding=utf-8 redmine


Redmine

Rack

Pour utiliser Redmine, il faut installer les dépendances suivantes :

gem install rack -v=1.1.3
gem install rails -v=2.3.14


Récupérer les sources

Konsole.png
[user@ordi ~]$ wget http://rubyforge.org/frs/download.php/75910/redmine-1.3.2.tar.gz
[user@ordi ~]$ tar -zxvf redmine-1.3.2.tar.gz


Configuration

Konsole.png
[user@ordi ~]$ cd redmine-1.3.*


Configuration de la DB

Konsole.png
[user@ordi ~]$ cp config/database.yml.example config/database.yml


Edition du fichier config/database.yml

production:
  adapter: postgresql
  database: redmine
  host: IP
  username: redmine
  password: password
  encoding: utf8
  schema_search_path: public


Création d'une session store

Konsole.png
[user@ordi ~]$ rake generate_session_store


Création de la structure de la base

RAILS_ENV=production rake db:migrate


Insertion des données par défaut

RAILS_ENV=production rake redmine:load_default_data


BlocNotes.png
À noter !
La langue sera demandée, indiquez donc fr pour du français


Finir l'installation

Copie vers /opt

Il nous faut tout d'abord créer le dossier /opt/redmine pour y copier les sources :

Konsole.png
[root@ordi ~]# mkdir /opt/redmine
[root@ordi ~]# cp -r redmine 1.3.0/* /opt/redmine


Un dossier tmp et public/plugin_assets doit être présent par convention dans les sources (si ce n'est pas déjà le cas) :

Konsole.png
[root@ordi ~]# mkdir -p /opt/redmine/tmp /opt/redmine/public/plugin_assets


Un dossier pids doit être présent également pour permettre à mongrel de démarrer :

Konsole.png
[root@ordi ~]# mkdir /opt/redmine/tmp/pids


Définition des droits

L'utilisateur qui lance Redmine doit avoir les droits d'écriture sur les dossiers files, log, tmp et public/plugin_assets des sources. Nous allons prendre ici l'utilisateur redmine précédement créé :

Konsole.png
[root@ordi ~]# cd /opt/redmine
[root@ordi ~]# chown -R redmine:redmine files log tmp public/plugin_assets
[root@ordi ~]# chmod -R 755 files log tmp public/plugin_assets


Nettoyage

On peut maintenant supprimer les sources que nous avions téléchargée :

Konsole.png
[user@ordi ~]$ rm -rf redmine-1.3.*


Apache

Installation d'Apache

Pour que Redmine fonctionne correctement, assurez vous d'avoir installé Apache ainsi que les composants suivants :

Konsole.png
[root@ordi ~]# apt-get install libapr1 apache2 apache2.2-common apache2-utils apache2-prefork-dev libapr1-dev libaprutil1-dev


Passenger

Il nous faut également installer Passenger :

Konsole.png
[root@ordi ~]# gem install passenger


Installation du module

Une fois passenger installé, on doit installer le module pour apache :

Konsole.png
[root@ordi ~]# ruby passenger-install-apache2-module


Warning.png
Attention !
Si vous obtenez l'erreur «ruby: No such file or directory – passenger-install-apache2-module (LoadError)», il vous faudra repérer la version de passenger lors de son installation un peu plus haut (pour l'exemple, version 3.0.8) et lancer le script suivant


Konsole.png
[root@ordi ~]# /var/lib/gems/1.8/gems/passenger-3.0.11/bin/passenger-install-apache2-module


Selectionner l'option 1 "The Apache 2 module will be installed for you" S'il manque "Curl development headers with SSL support" , installez

Konsole.png
[root@ordi ~]# apt-get install libcurl4-openssl-dev


Relancez le script

Configuration d'Apache

  • Créez/éditer le fichier /etc/apache2/mods-available/passenger.load pour y indiquer le chemin du module :
LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
  • Créez (ou éditez) ensuite le fichier /etc/apache2/mods-available/passenger.conf pour y adapter le chemin de Passenger et Ruby:
PassengerRoot /var/lib/gems/1.8/gems/passenger-3.0.11
PassengerRuby /usr/bin/ruby1.8
  • Activer les modules d'apache necessaire :
Konsole.png
[root@ordi ~]# a2enmod passenger
[root@ordi ~]# a2enmod rewrite
  • Configuration URI

Faites une copie de votre fichier de configuration (par soucis de sauvegarde) :

Konsole.png
[root@ordi ~]# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/default.save


Puis éditez /etc/apache2/sites-available/default pour y mettre le contenu suivant :

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName redmine.domaine.be

        DocumentRoot /opt/redmine/public
        RailsEnv production
        RailsBaseURI /redmine

        <Directory /opt/redmine/public/>
                Options Indexes ExecCGI FollowSymLinks
                AllowOverride None
                Order deny,allow
                Allow from all
        </Directory>

        ErrorLog /opt/redmine/log/apache-error.log
        LogLevel warn
        CustomLog /opt/redmine/log/apache-access.log combined
</VirtualHost>


Warning.png
Attention !
Le domaine "redmine.domain.be" doit exister au préalable dans le serveur DNS


Définissez l'utilisateur de Redmine comme propriétaire des sources de l'application :

Konsole.png
[root@ordi ~]# chown -R redmine:users /opt/redmine


Warning.png
Attention !
Remarques : Il se peut que Redmine ne se lance pas à cause d'un bug de Ruby. L'utilisateur de Redmine peut avoir besoin d'un dossier personnel. Si ce n'est pas le cas , définissez lui en un :


Konsole.png
[root@ordi ~]# usermod -d /var/www/redmine redmine


Configuration Mail

Modifier le fichier /opt/redmine/config/configuration.yml

# default configuration options for all environments
default:
  # Outgoing emails configuration (see examples above)
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: mail.domain.be
      port: 25
      domain: domain.be
      authentication: :none
      # user_name: "redmine@example.net"
      # password: "redmine"

# Outgoing email settings

production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: mail.domain.be
      port: 25
      domain: domain.be
      authentication: :none


OpenLDAP

Authentification

La configuration pour utiliser un serveur OpenLDAP à des fins d'authentification, se réalise à partir de l'interface Web (Administrations -> Authentification LDAP)

Plugin Sync LDAP

Installation

Konsole.png
[user@ordi ~]$ sudo ./script/plugin install https://github.com/thorin/redmine_ldap_sync.git


Configuration

Une fois le plugin installer, il faut le configurer toujours à partir de l'interface Web (Administration -> Plugins -> Redmine -LDAP Sync)

Synchronisation complète

Il nous faut lancer, une première fois, une synchronisation complète avec notre serveur OpenLDAP :

sudo rake redmine:plugins:redmine_ldap_sync:sync_users RAILS_ENV=production


Warning.png
Attention !
IL faut se placer dans le dossier /opt/redmine avant de lancer la commande de synchronisation


Utilisation

Lancer Redmine

Pour lancer Redmine, vous pouvez exécuter le script ruby des sources :

Konsole.png
[user@ordi ~]$ ruby /opt/redmine/script/server -e production


L'option -d permet de le lancer en démon :

Konsole.png
[user@ordi ~]$ ruby /opt/redmine/script/server -d -e production


Redémarrer Redmine

Dans certain cas, redémarrer le serveur est le meilleur moyen d'être sûr que redmine redémarre bien.

Changer password Admin

Pour changer le mot de passe Administrateur, on peux le faire via l'interface web mais également en ligne de commande :

RAILS_ENV=production script/runner 'user = User.find(:first, :conditions => {:admin => true}) ; user.password, user.password_confirmation = "PASSWORD"; user.save!'

En ayant au préalablement été se placer dans le dossier /opt/redmine

Procédure

Mise à jour


BlocNotes.png
À noter !
Cette procédure a été réalisé pour une mise à jour de Redmine 1.3.0 vers 2.3.0
Procédure basée sur la documentation de Redmine FrRedmineUpgrade


1. Téléchargez la nouvelle version

On télécharge la nouvelle version sur le site de Redmine ( Redmine Forge ) qu'on va placez dans /opt

Konsole.png


On désarchive la nouvelle version

Konsole.png
[user@ordi ~]$ tar -zxvf redmine-2.3.0.tar.gz


2. Copie les fichiers de configuration

  • Copiez vos paramètres de base config/database.yml dans le nouveau répertoire de configuration config
  • Copiez vos paramètres de configuration config/configuration.yml dans le nouveau répertoire de configuration config.
  • Si vous migrez depuis une version plus vielle que 1.2.0, copiez vos configurations de courriel de votre config/email.yml dans le nouveau config/configuration.yml dont l'exemple peut être copié du fichier configuration.yml.example.
  • Copiez le contenu de files dans le répertoire files de votre nouvelle installation
  • Copiez le répertoire contenant vos plugin personnalisés de votre répertoire vendor/plugins dans le répertoire plugins de votre nouvelle installation ( si vous migrez d'une version antérieure à 2.0.0 vers une version >= 2.0.0). Assurez-vous de ne copier que les plugins différents de l'installation originale de Redmine de votre précédente installation. (Que le dossier du plugin LDAP)

3. Mise a jour session

  • On installe le bundler dans le répertoire de la nouvelle installation


Konsole.png
[user@ordi ~]$ sudo gem install bundler
[user@ordi ~]$ sudo bundle install


On installe les éventules plugins manquants

  • Nokogiri


Konsole.png
[user@ordi ~]$ sudo apt-get install ruby1.8-dev ruby1.8 ri1.8 rdoc1.8 irb1.8 libreadline-ruby1.8 libruby1.8 libopenssl-ruby libxslt-dev libxml2-dev
[user@ordi ~]$ sudo gem install nokogiri


  • RMagick


Konsole.png
[user@ordi ~]$ sudo apt-get install imagemagick libmagickwand-dev


  • Exécturer les commandes suivantes depuis le répertoire Redmine de la nouvelle installation


Konsole.png
[user@ordi ~]$ sudo rake config/initializers/session_store.rb


  • Génération d'un nouveau secret secret_token.rb

On exécute les commandes suivantes depuis le répertoire Redmine de votre nouvelle installation

Konsole.png
[user@ordi ~]$ sudo rake config/initializers/session_store.rb


Avant 2.0.0, un fichier session_store.rb devait être généré dans le répertoire config pour permettre les sessions basées sur les fichiers témoins (cookies).

À partir de la version 2.0.0 le fichier session_store.rb ne devrait plus exister. À la place la commande suivante va générer le fichier secret_token.rb.

Konsole.png
[user@ordi ~]$ sudo rake generate_secret_token


BlocNotes.png
À noter !
le dépot du code de Redmine ne contient pas pas le fichier config/initializers/secret_token.rb file, c'est le code précédent qui le crée.


4. Mise à jour de la base de données

Cette étape va modifier le contenu de la base de données. Allez dans le répertoire de votre nouvelle installation de Redmine et effectuez la commande suivante :

Konsole.png
[user@ordi ~]$ sudo rake db:migrate RAILS_ENV=production


Si vous avez installé des plugin, vous devrez effectuer une migration de la base de données. Effectuer la commande suivante :

Konsole.png
[user@ordi ~]$ sudo rake redmine:plugins:migrate RAILS_ENV=production


5.Nettoyage

  • Vous devez nettoyer le cache et les sessions existantes, pour ce faire, exécuter les commandes suivantes :
rake tmp:cache:clear
rake tmp:sessions:clear

6.Apache

Il faut modifier le fichier /etc/apache2/sites-available/redmine pour qu'il prenne en compte notre nouvelle installation :

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName redmine.domain.be

        DocumentRoot /opt/redmine-2.3.0/public
        RailsEnv production
        RailsBaseURI /redmine

        <Directory /opt/redmine-2.3.0/public/>
                Options Indexes ExecCGI FollowSymLinks
                AllowOverride None
                Order deny,allow
                Allow from all
        </Directory>

        ErrorLog /opt/redmine-2.3.0/log/apache-error.log
        LogLevel warn
        CustomLog /opt/redmine-2.3.0/log/apache-access.log combined
</VirtualHost>

Remplacer redmine-2.3.0 par le nom de dossier correspondant à la nouvelle installation.

7. Redémarrez l'application

Konsole.png
[user@ordi ~]$ sudo service apache2 restart


8. Finalement, lancez votre navigateur et allez dans "Administration -> Rôles & permissions" pour vérifier et/ou paramétrer les permissions sur les nouvelles fonctionnalités, s'il y en a.

9. Vérification envoi de mail

Vérifier via le menu Administration->Notification par email->Envoyer un email de test

Si le message d'erreur suivant s'affiche :

Erreur lors de l'envoi de l'email (hostname was not match with the server certificate)

Il faut modifier le fichier /opt/redminer-2.3.0/config/configuration.yml pour que la section production ressemble à ceci :

production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: mail.domain.be
      port: 25
      domain: domain.be
      authentication: :none
      tls: false
      enable_starttls_auto: false

10. Assigner les droit sur le dossier

A la fin de la migration, on ré-assigne le propriétaire du dossier /opt/redmine-2.3.0

Konsole.png
[user@ordi ~]$ sudo chown -R redmine:users redmine-2.3.0/