4608
Commentaire: version 1
|
7143
là je pense qu'en gros, c'est fini (donc, ça commence)
|
Texte supprimé. | Texte ajouté. |
Ligne 1: | Ligne 1: |
<<TableOfContents>> |
|
Ligne 106: | Ligne 108: |
Ajout d'un script de démarrage de redmine via mongrel dans /etc/init.d/[[attachment:redmine_mongrel.sh|/etc/init.d/redmine_mongrel]], et activation de ce script avec `update-rc.d redmine_mongrel defaults` | Création d'un utilisateur dédié à redmine et mise en place des droits d'accès : {{{ # adduser --system redmine --home /opt/redmine --no-create-home --group --gecos "redmine system user" --disabled-login --disabled-password # cd /opt/redmine # chown -R redmine:redmine log files tmp plugin/plugin_assets }}} Ajout d'un script de démarrage de redmine via mongrel : [[attachment:redmine_mongrel.sh|/etc/init.d/redmine_mongrel]], et activation de ce script avec `update-rc.d redmine_mongrel defaults` |
Ligne 142: | Ligne 151: |
C'est tout... |
== Remplissage automatique du groupe AUF (par cron) == Note : ceci suppose que l'authentification LDAP a été activée dans redmine, et que le groupe AUF existe. On désire que tous les utilisateurs qui ont été créés via l'authentification LDAP se retrouvent dans le groupe AUF. Une technique très-bête-mais-qui-marche : {{{ #!/bin/sh # ajout des utilisateurs loggues via LDAP dans le groupe AUF # # script à lancer en cron, par exemple toutes les 5 minutes, avec le user "redmine" # => */5 * * * * redmine /opt/redmine/ldap_dans_groupe_auf.sh # cat << EOF | /opt/redmine/script/console production 2>&1 > /dev/null g = Group.find(4) u = User.find_all_by_auth_source_id(1) - g.users g.users << u if u != [] STDERR.write("\nredmine : ajout d'utilisateur LDAP dans le groupe AUF\n\n") for n in u STDERR.write(" - ") STDERR.write(n) STDERR.write("\n") end STDERR.write("\n-- \ncron ldap_dans_groupe_auf.sh sur redmine.auf.org\n") end EOF }}} == Synchronisation des dépôts git == Un cron est installé qui met à jour tous les dépôts `/srv/git/*.git` : {{{ #!/bin/sh # sources d'inspiration # http://mult.ifario.us/p/integrating-github-and-redmine # http://www.redmine.org/wiki/redmine/RedmineRepositories # mise a jour des depots for git in `ls -d /srv/git/*.git` do echo "git fetch $git" cd $git git --bare fetch origin :master #git reset refs/remotes/origin/master > /dev/null #selon doc redmine, mais est-ce necessaire ? done # mise a jour du suivi par redmine # (optionnel, car de toute façon ça serait fait lors du premier acces a chaque depot) echo "mise a jour redmine (Repository.fetch_changesets)" cd /opt/redmine ./script/runner "Repository.fetch_changesets" -e production }}} Pour activer un nouveau dépôt sur la machine, il suffit donc de faire quelque chose comme : {{{ root@redmine# su - redmine redmine@redmine$ cd /srv/git redmine@redmine$ git clone --bare git://git.auf.org/xxxx.git xxxx.git redmine@redmine$ cd xxxx.git redmine@redmine$ git --bare remote add origin git://git.auf.org/xxxx.git }}} Voir aussi [[Git/DépôtGit]] |
Sommaire
- Préparation
- Installation Ruby et paquets ruby de base nécessaires
- Installation de rails 2.3.5 et dépendances (via gem)
- Téléchargement de redmine 0.9-stable via svn
- Configuration de redmine
- Initialisation de redmine
- Mise en production via mongrel
- Mise à disposition en HTTPS avec apache
- Remplissage automatique du groupe AUF (par cron)
- Synchronisation des dépôts git
Notes sur l'installation de http://redmine.auf.org
(rappel : première version de JeanChristopheAndré : /PremiereVersion)
On a décidé d'installer la version 0.9 (actuellement en finalisation) de façon «classique», c'est à dire sans passer par un paquet Debian. Le framework Rails est également installé directement, via le système «gem» de Ruby. Quelques paquets viennent des backports.
Sources d'inspiration :
Préparation
Machine Debian Lenny 5.0, avec activation des backports et de volatile :
ajout de lenny/volatile et lenny-backports au /etc/apt/sources.list
création d'un fichier /etc/apt/preferences contenant :
Explanation: autoriser les mises à jour automatiques pour les backports Package: * Pin: release a=lenny-backports Pin-Priority: 200
correction du /etc/hosts pour mettre le nom pleinement qualifié (FQDN) avant l'alias...
vérification du support des locales Unicode, en particulier fr_FR.UTF-8
installation de mysql-server, sécurisation et mise en place du support Unicode
installation de apache2 et mise en place du support Unicode
Installation Ruby et paquets ruby de base nécessaires
# aptitude install ruby # aptitude install irb # facultatif, utile pour le script/console de redmine # aptitude -t lenny-backports install rubygems rake # aptitude install libopenssl-ruby # aptitude install libdbd-mysql-ruby mysql-client # aptitude install librmagick-ruby # facultatif, permettra d'avoir des graphes dans redmine
Installation de rails 2.3.5 et dépendances (via gem)
# gem install rails -V -v=2.3.5 (...) Successfully installed rake-0.8.7 Successfully installed activesupport-2.3.5 Successfully installed activerecord-2.3.5 Successfully installed rack-1.0.1 Successfully installed actionpack-2.3.5 Successfully installed actionmailer-2.3.5 Successfully installed activeresource-2.3.5 Successfully installed rails-2.3.5 8 gems installed
Téléchargement de redmine 0.9-stable via svn
On installe redmine dans /opt :
# cd /opt # svn checkout http://redmine.rubyforge.org/svn/branches/0.9-stable redmine-0.9 # ln -s redmine-0.9 redmine
Configuration de redmine
Création de la base MySQL redmine09 et de l'utilisateur correspondant :
create database redmine09 character set utf8; create user 'redmine'@'localhost' identified by 'trucmachin'; grant all privileges on redmine09.* to 'redmine'@'localhost';
Connexion de redmine à cette base :
# cat > config/database.yml << EOF production: adapter: mysql database: redmine09 host: localhost username: redmine password: trucmachin encoding: utf8 EOF
Initialisation de redmine
$ rake generate_session_store $ export RAILS_ENV=production $ rake db:migrate $ rake redmine:load_default_data $ rake db:migrate_plugins # est-ce nécessaire ? je ne pense pas, mais ça fait pas de mal.
Mise en production via mongrel
(note : ceci est inspiré de http://doc.ubuntu-fr.org/redmine#configuration)
Mongrel est un serveur HTTP qui va propulser redmine sur un port local (127.0.0.1:3000). C'est ensuite apache qui rendra redmine visible de l'extérieur en HTTPS (voir ci-dessous) :
# aptitude install mongrel
Création d'un utilisateur dédié à redmine et mise en place des droits d'accès :
# adduser --system redmine --home /opt/redmine --no-create-home --group --gecos "redmine system user" --disabled-login --disabled-password # cd /opt/redmine # chown -R redmine:redmine log files tmp plugin/plugin_assets
Ajout d'un script de démarrage de redmine via mongrel : /etc/init.d/redmine_mongrel, et activation de ce script avec update-rc.d redmine_mongrel defaults
Mise à disposition en HTTPS avec apache
Activation des modules d'apache2 nécessaires :
# a2enmod proxy proxy_http ssl
On installe le certificat et la clé SSL pour *.auf.org et on configure le site dans /etc/apache2/sites-enabled/redmine.auf.org :
<VirtualHost *:443> (...) SSLEngine on SSLCertificateFile /.../all-auf.org.crt SSLCertificateKeyFile /.../all-auf.org.key SSLCACertificateFile /.../CA.pem SSLVerifyClient None (...) ProxyPreserveHost Off ProxyPass / http://127.0.0.1:3000/ ProxypassReverse / http://127.0.0.1:3000/ <Proxy *> Order allow,deny Allow from all </Proxy> </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@auf.org ServerName redmine.auf.org Redirect permanent / https://redmine.auf.org/ </VirtualHost>
Remplissage automatique du groupe AUF (par cron)
Note : ceci suppose que l'authentification LDAP a été activée dans redmine, et que le groupe AUF existe.
On désire que tous les utilisateurs qui ont été créés via l'authentification LDAP se retrouvent dans le groupe AUF. Une technique très-bête-mais-qui-marche :
# ajout des utilisateurs loggues via LDAP dans le groupe AUF # # script à lancer en cron, par exemple toutes les 5 minutes, avec le user "redmine" # => */5 * * * * redmine /opt/redmine/ldap_dans_groupe_auf.sh # cat << EOF | /opt/redmine/script/console production 2>&1 > /dev/null g = Group.find(4) u = User.find_all_by_auth_source_id(1) - g.users g.users << u if u != [] STDERR.write("\nredmine : ajout d'utilisateur LDAP dans le groupe AUF\n\n") for n in u STDERR.write(" - ") STDERR.write(n) STDERR.write("\n") end STDERR.write("\n-- \ncron ldap_dans_groupe_auf.sh sur redmine.auf.org\n") end EOF
Synchronisation des dépôts git
Un cron est installé qui met à jour tous les dépôts /srv/git/*.git :
# sources d'inspiration # http://mult.ifario.us/p/integrating-github-and-redmine # http://www.redmine.org/wiki/redmine/RedmineRepositories # mise a jour des depots for git in `ls -d /srv/git/*.git` do echo "git fetch $git" cd $git git --bare fetch origin :master #git reset refs/remotes/origin/master > /dev/null #selon doc redmine, mais est-ce necessaire ? done # mise a jour du suivi par redmine # (optionnel, car de toute façon ça serait fait lors du premier acces a chaque depot) echo "mise a jour redmine (Repository.fetch_changesets)" cd /opt/redmine ./script/runner "Repository.fetch_changesets" -e production
Pour activer un nouveau dépôt sur la machine, il suffit donc de faire quelque chose comme :
root@redmine# su - redmine redmine@redmine$ cd /srv/git redmine@redmine$ git clone --bare git://git.auf.org/xxxx.git xxxx.git redmine@redmine$ cd xxxx.git redmine@redmine$ git --bare remote add origin git://git.auf.org/xxxx.git
Voir aussi Git/DépôtGit